J'ai une classe de base A et une classe dérivée B:Pourquoi mon destructeur n'est jamais appelé?
class A
{
public:
virtual f();
};
class B : public A
{
public:
B()
{
p = new char [100];
}
~B()
{
delete [] p;
}
f();
private:
char *p;
};
Pour une raison quelconque, le destructor est jamais appelé - pourquoi? Je ne comprends pas ça.
Bien que tout le monde ait déjà compris quel est le problème (Comme c'est une FAQ en C++), je suggère toujours de montrer au code comment vous utilisez la classe B. (Si vous l'utilisez comme ça: B * p = new B(); delete p; et le destructeur n'a jamais été appelé, alors cela devrait être un problème totalement différent.) –