상속 점검

상속 대체 가능성

C++ 상속은 코드를 줄이는 기능이 아니라 기반 클래스 자리에서 파생 객체를 안전하게 다룰 수 있게 만드는 설계 장치입니다.

is-a

대체 가능성

Dog는 Animal처럼 다뤄져도 계약을 깨지 않아야 public 상속이 자연스럽습니다.

reuse

구현 재사용

코드 재사용만 목적이면 합성이나 private 멤버가 더 단순할 수 있습니다.

access

접근 지정자

public, protected, private 상속은 외부에 공개되는 기반 인터페이스를 다르게 만듭니다.

lifetime

소멸자 규칙

기반 포인터로 지울 수 있다면 기반 소멸자는 virtual이어야 합니다.