반응형
항목 32 : public 상속 모형은 반드시 "is-a(...는 ...의 일종이다)"를 따르도록 만들자
public 상속은 반드시 "is-a" 관계를 뜻해야 합니다.
가상 함수의 의미는 "인터페이스가 상속되어야 한다"인 반면, 비가상 함수의 의미는 "인터페이스와 구현이 둘 다 상속 되어야 한다"입니다.
public 상속은 기본 클래스 객체가 가진 모든 것들이 파생 클래스 객체에도 그대로 적용된다고 단정하는 상속입니다.
클래스들 사이에 맺을 수 있는 관계로 is-a 관계만 있는 것은 아닙니다. 두 가지가 더 있는데, 하나는 "has-a(...는...를 가짐)"이고 또 하나는 "is-implemented-in-terms-of(...는...를 써서 구현됨)"입니다.
꼭 잊지 말아야 할 것!
public 상속의 의미는 "is-a(...는 ...의 일종)"입니다. 기본클래스에 적용되는 모든 것들이 파생 클래스에 그대로 적용되어야 합니다. 왜냐하면 모든 파생클래스 객체는 기본 클래스 객체의 일종이기 때문입니다.
반응형
'언어 > C++' 카테고리의 다른 글
[Effective C++] 인터페이스 상속과 구현 상속의 차이를 제대로 파악하고 구별하자 (0) | 2020.02.03 |
---|---|
[Effective C++] 상속된 이름을 숨기는 일은 피하자 (0) | 2020.02.02 |
[Effective C++] 파일 사이의 컴파일 의존성을 최대로 줄이자 (0) | 2020.01.31 |
[Effective C++] 인라인 함수는 미주알고주알 따져서 이해해 두자 (0) | 2020.01.30 |
[Effective C++] 예외 안전성이 확보되는 그날 위해 싸우고 또 싸우자! (0) | 2020.01.29 |