multiple
다중 상속은 diamond, virtual, ctor, compose 네 단어로 최종 판단한다
코드 가능 여부보다 상태 중복과 생성 책임을 표로 확인해야 한다.
diamond공통 기반이 두 번 들어오는가
virtual공유 기반을 하나로 묶는가
ctor최종 파생이 기반을 초기화
compose상속보다 멤버 조합이 쉬운가
| 선택 | 쓸 때 | 다음 확인 |
|---|---|---|
| 그냥 다중 상속 | 상태 없는 역할 조합 | 이름 충돌 없음 |
| virtual 상속 | 공통 기반을 하나만 공유 | 최종 생성자 책임 |
| 합성 | 상태와 소유권이 섞임 | 멤버 위임으로 단순화 |
핵심 diamond, virtual, ctor, compose 네 단어만 남기면 다중 상속 판단이 흐려지지 않는다.