私は3つのクラスを持っています
class A
{
A();
virtual ~A();
}
class B : public A
{
B();
~B();
}
class C
{
void *obj;
C() : obj(nullptr) {}
~C() { if (obj) delete obj; }
}
C
クラスの子のコンテナとしてクラスを使用し、インスタンスA
を削除しようとすると。、デストラクタが呼び出されていないのは正常ですか? 解決策は何ですか?C
A
B
C* instance = new C();
instance.obj = new B();
//Magic
delete instance; // A and B destructor is not called