virtual debug

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

다형성 오류는 대부분 호출 경로가 실제 객체를 잃었거나, 가상 호출 계약이 불완전해서 생긴다.

점검 순서확인할 코드문제 신호수정 방향
1. 값 잘림Base b = derivedDerived 정보가 사라짐Base& 또는 Base*로 받기
2. virtual 여부void draw()Base 구현만 호출기반 함수에 virtual 선언
3. override 시그니처void draw(int) override컴파일 오류 또는 다른 함수override로 시그니처 검증
4. 소멸자~Base()delete Base* 시 일부 정리 누락virtual ~Base() = default
5. 컨테이너vector<Base>파생 객체가 값으로 잘림vector<unique_ptr<Base>> 검토