multiple inheritance

가상 상속 중복 제어

Device, Printer, Scanner, Copier, virtual public은 같은 기반이 두 번 들어오는 문제를 설명합니다.

다이아몬드

다중 상속 중복

Copier 안에 Device가 둘 생기면 멤버 접근도 모호해집니다.

virtual public

공유 기반 클래스

중복 저장 공간과 모호한 이름 해석을 줄입니다.

생성 순서

가상 기반 클래스 초기화

Copier 생성자에서 Device(...) 책임이 어디 있는지 확인해야 합니다.

가상 기반 공유 조건

다중 기반 상태 비용

인터페이스 조합처럼 상태가 적은 경우가 더 다루기 쉽습니다.

Device 중복 기반 멤버가 두 벌이면 어떤 값을 읽는지 코드가 모호해집니다.
가상 기반 한 벌만 공유하므로 저장 공간과 접근 경로가 정리됩니다.
설계 부담 상속 그래프가 복잡해질수록 생성자와 소멸자 순서 설명이 길어집니다.