기본 클래스 A와 파생 클래스 B가 있습니다.내 소멸자가 왜 부르지 않았습니까?
class A
{
public:
virtual f();
};
class B : public A
{
public:
B()
{
p = new char [100];
}
~B()
{
delete [] p;
}
f();
private:
char *p;
};
어떤 이유로 든 소멸자는 호출되지 않습니다 - 왜? 나는 이것을 이해하지 못한다.
모두가 이미 문제가 무엇인지 알아 냈지만 (C++의 FAQ이므로) 클래스 B 사용 방법을 코드에 표시해야합니다. (이 방법을 사용하는 경우 : B * p = new B(); p를 삭제하고 소멸자가 호출되지 않았다면 전혀 다른 문제가됩니다.) –