는 b
누구 정적Base*
형이며 그의 동적 형 Derived*
인 다형성 포인터 타입이다.가상 소멸자가없는 다형성 객체를 삭제하면 어떻게됩니까? 다음 예에서
struct Base
{
virtual void f();
};
struct Derived : Base
{
};
int main()
{
Base *b = new Derived();
// ...
delete b;
}
가상 소멸자없이 b
을 삭제하면 어떻게됩니까?
https://www.securecoding.cert.org/confluence/display/cplusplus/OOP52-CPP.+Do+not+delete+a+polymorphic+object+without+a+virtual+destructor – v78
가능한 [가상 다형성의 기본 클래스에 대한 가상 소멸자가 누락 된 = Ressource 누출?] (http://stackoverflow.com/questions/33455750/virtual-destructor-missing-for-base-class-in-polymorphism-ressource-leak) – stefaanv