polymorphism

다형성 문제는 값 복사, virtual, 수명 계약 순서로 좁힌다

Base 참조/포인터 모양만으로 충분하지 않고 호출과 삭제 경로까지 확인해야 한다.

복사 금지Base 값 컨테이너 피하기
호출 계약virtual + override
수명 계약virtual destructor
소유권unique_ptr<Base>로 표현
설계 질문A급 답피해야 할 답
여러 Derived를 담나?참조/포인터 컬렉션vector<Base>
호출이 바뀌어야 하나?Base virtual + Derived override이름만 같은 함수
Base로 지우나?virtual destructor비가상 소멸자

핵심 다형성 API는 전달, 호출, 삭제, 소유권 네 계약이 동시에 맞아야 안정적이다.