VIRTUAL INHERITANCE

다중 상속은 공통 기반 클래스가 중복되는 순간 모호성이 생긴다

다이아몬드 구조에서는 최종 클래스 안에 같은 기반 객체가 두 개 생길 수 있어, 가상 상속으로 공유 기준을 고정한다.

문제 구조

Device공통 기반 클래스다.
Printer / Scanner각각 Device를 상속한다.
Copier두 경로를 모두 상속해 id가 모호해진다.

해결 규칙

virtual public중간 클래스가 기반 객체를 공유하겠다고 선언한다.
최종 초기화가상 기반 클래스는 최종 파생 클래스가 초기화한다.
단일 기준공통 멤버 접근이 한 경로로 정리된다.
설계 기준: 다중 상속이 필요한지 먼저 따지고, 공통 기반이 있으면 중복 객체 여부를 반드시 확인한다.