Ho una classe base A e una classe derivata B:Perché il mio distruttore non ha mai chiamato?
class A
{
public:
virtual f();
};
class B : public A
{
public:
B()
{
p = new char [100];
}
~B()
{
delete [] p;
}
f();
private:
char *p;
};
Per qualsiasi motivo il distruttore non viene mai chiamato - perché? Non lo capisco.
Anche se tutti hanno già capito qual è il problema (dato che è una FAQ in C++), suggerisco comunque di mostrare il codice come si usa la classe B. (Se la usi in questo modo: B * p = new B(); elimina p; e il distruttore non ha mai chiamato, quindi dovrebbe essere un problema completamente diverso.) –