polymorphism

호출 결과는 전달 방식, virtual 여부, 실제 객체 순서로 판정한다

같은 draw 호출도 값 잘림, 가상 호출, 런타임 타입 보존 여부에 따라 결과가 달라진다.

값 전달복사 순간 Derived가 잘림
비가상 호출정적 타입의 함수로 고정
virtual 호출vptr로 실제 구현 탐색
삭제소멸자도 가상 계약 필요
질문아니오
값으로 넘겼나?Base 부분만 남음다음 질문
함수가 virtual인가?런타임 타입으로 분기Base 함수로 고정
삭제가 Base*인가?virtual destructor 확인호출 결과만 확인

핵심 결과가 안 맞으면 값 전달인지, virtual인지, 삭제 경로가 있는지를 순서대로 본다.