`Printer`와 `Scanner`가 `Device(...)`를 적어도, 최종 객체 `Copier`를 만들 때는 `Copier`가 공유 Device의 생성자 인자를 결정합니다.
| 위치 | 초기화 책임 | 왜 중요한가 |
|---|---|---|
| Device | 가상 기반이므로 객체 안에 한 번만 존재 | id 같은 공유 상태가 두 개로 갈라지지 않는다. |
| Printer / Scanner | 자기 멤버만 초기화 | 최종 객체 생성 시 Device 인자를 결정하지 못한다. |
| Copier | Copier() : Device(42) |
공유 기반 클래스의 실제 초기값을 최종적으로 정한다. |