언어/C++
[Effective C++] public 상속 모형은 반드시 "is-a(...는 ...의 일종이다)"를 따르도록 만들자
지나가던 개발자
2020. 2. 1. 12:54
반응형
항목 32 : public 상속 모형은 반드시 "is-a(...는 ...의 일종이다)"를 따르도록 만들자
public 상속은 반드시 "is-a" 관계를 뜻해야 합니다.
가상 함수의 의미는 "인터페이스가 상속되어야 한다"인 반면, 비가상 함수의 의미는 "인터페이스와 구현이 둘 다 상속 되어야 한다"입니다.
public 상속은 기본 클래스 객체가 가진 모든 것들이 파생 클래스 객체에도 그대로 적용된다고 단정하는 상속입니다.
클래스들 사이에 맺을 수 있는 관계로 is-a 관계만 있는 것은 아닙니다. 두 가지가 더 있는데, 하나는 "has-a(...는...를 가짐)"이고 또 하나는 "is-implemented-in-terms-of(...는...를 써서 구현됨)"입니다.
꼭 잊지 말아야 할 것!
public 상속의 의미는 "is-a(...는 ...의 일종)"입니다. 기본클래스에 적용되는 모든 것들이 파생 클래스에 그대로 적용되어야 합니다. 왜냐하면 모든 파생클래스 객체는 기본 클래스 객체의 일종이기 때문입니다.
반응형