상속 그래프
base가 상태를 갖는지, 같은 조상이 여러 경로로 들어오는지 확인한다.
diamond 탐지다중 상속은 여러 인터페이스 조합을 한 타입에 모으지만 데이터 base가 겹치면 모호성과 중복 subobject가 생긴다. virtual inheritance가 필요한지 먼저 상속 그래프를 그린다.
base가 상태를 갖는지, 같은 조상이 여러 경로로 들어오는지 확인한다.
diamond 탐지상태 없는 인터페이스 조합인지 구현 재사용인지 목적을 나눈다.
mixin은 가벼움같은 이름 멤버가 여러 base에 있으면 scope qualifier나 using으로 의도를 밝힌다.
컴파일 오류 후보공유 base가 하나만 있어야 하면 virtual inheritance로 subobject를 통합한다.
생성 책임 변화