WN_인생기록

virtual ~소멸자에 대해 설명해주세요 본문

C++/면접 대비

virtual ~소멸자에 대해 설명해주세요

WhNi 2024. 3. 20. 16:36

가상 소멸자는 파생클래스가 상속을 받았을때, 필요한 메서드 입니다.

 

파생클래스가 생성될때는, 상위 클래스의 생성자가 생성되고, 이후에 파생클래스의 생성자가 실행됩니다.

 

그러나 소멸할때도 상위 클래스의 소멸자가 먼제 실행되기때문에, 파생클래스의 소멸자가 호출되지 않아 메모리 누수가 발생합니다.

 

이를 막기 위해서는, 상위 클래스의 소멸자에 virtual를 붙여 생성하면, 상속받은 소멸자가 먼저 호출되어, 메모리 누수가 없이 소멸됩니다.