子の代わりに抽象クラスを削除してもよろしいですか? これにより、すべての割り当てが解放されますか?
例として次の状況を考えてみましょう。ただし、回答をその 1 つのケースに限定しないでください。
struct A {
virtual void fun() = 0;
};
struct B : public A {
void fun() { /* actually doing something here. */ }
};
struct C {
A *a;
void OneTask() {
// (...)
a = new B();
}
void AnotherTask() { /* using fun() in some way. */ }
~C() { delete a; }
};
アイデアは、OneTask() の複数の可能な結果を持つことであり、その結果、A から継承するさまざまなクラスへのポインターが割り当てられます。B は単なる例です。そして、AnotherTask() およびクラス C の他のメソッドでそのような結果を合理的に使用する。