polymorphism

가상 함수가 기대와 다르면 값 잘림, virtual, override, 소멸자 순서로 본다

다형성 오류는 실제 객체를 잃었거나 가상 호출 계약이 불완전할 때 생긴다.

1. 잘림Base 값 복사 여부
2. virtualBase 선언 위치 확인
3. overrideconst, 매개변수까지 일치
4. 소멸자Base* delete 경로 확인
증상가장 먼저 볼 것수정 방향
항상 Base 출력값 전달 또는 비가상 함수Base&와 virtual
override가 안 잡힘시그니처 불일치override 키워드로 검증
삭제 때 누수소멸자 비가상virtual ~Base()

핵심 다형성 버그는 호출 결과보다 먼저 객체가 보존됐는지와 함수 계약이 맞는지를 좁혀야 한다.