polymorphism

다형성 객체는 값으로 복사하지 않고 참조나 포인터로 전달한다

Base 값으로 복사하면 파생 클래스 부분이 잘리므로 API 경계에서 전달 방식을 먼저 정한다.

Base 값복사하며 파생 부분 손실
const Base&원본 객체의 타입 유지
Base*null과 소유권을 함께 판단
unique_ptr다형성과 수명까지 표현
API 형태다형성 보존읽는 법
void f(Base)아니오Base로 복사한다
void f(Base&)외부 객체를 다룬다
vector<unique_ptr<Base>>여러 Derived를 한 컬렉션에 둔다

핵심 다형성이 필요하면 값 복사가 아니라 참조, 포인터, 스마트 포인터 중 의도를 드러내는 형태를 고른다.