virtual 소멸자

보물창고·2021년 8월 19일
0

상속 시 부모 클래스의 소멸자를 왜 virtual 붙이는지?

: 부모 클래스를 참조형식으로 하고, 자식 클래스를 실형식으로 하고 동적할당을 한 후, 동적 할당 해제를 하게 되면, 부모 클래스의 소멸자만 해제 됩니다.
왜냐하면 포인터의 자료형은 참조 형식 즉, 부모이므로 부모의 함수만 호출되는 것입니다.
오버라이딩 하는 함수에 virtual을 해야 가상함수 포인터가 자식 클래스의 가상함수 테이블을 가리키게 됨으로써 오버라이딩 함수를 호출할 수 있게 되는 것입니다.
소멸자도 이와 동일한 맥락 입니다.

profile
🔥🔥🔥

0개의 댓글