다중 상속 점검표

다중 상속 판단

다이아몬드 문제가 보이면 중간 클래스의 virtual public 선언과 최종 파생 클래스의 기반 초기화를 한 세트로 검토합니다.

다이아몬드 구조

Device 공유할 기반 상태
Printer virtual public Device
Scanner virtual public Device
Copier Device(42) 초기화
01

공통 기반이 두 경로인가

같은 Base가 중복되면 멤버 접근과 상태 소유가 모호해집니다.

02

중간 클래스가 공유를 선언했는가

공유 대상은 Printer, Scanner 쪽에서 virtual public으로 둡니다.

03

최종 클래스가 Base를 초기화하는가

가상 기반 클래스 생성자 인자는 Copier 같은 최종 타입이 정합니다.

04

합성이 더 단순한가

상태 있는 기능 조합은 멤버 객체로 나누는 편이 더 읽기 쉽습니다.