ベース仮想デストラクタを明示的に呼び出す必要がありますか? 質問する

ベース仮想デストラクタを明示的に呼び出す必要がありますか? 質問する

C++ でクラスをオーバーライドする場合 (仮想デストラクタを使用)、継承クラスでデストラクタを仮想として再度実装していますが、基本デストラクタを呼び出す必要がありますか?

もしそうなら、それはこんな感じだと思います...

MyChildClass::~MyChildClass() // virtual in header
{
    // Call to base destructor...
    this->MyBaseClass::~MyBaseClass();

    // Some destructing specific to MyChildClass
}

私の言う通りでしょうか?

ベストアンサー1

いいえ、デストラクタは構築の逆の順序で自動的に呼び出されます (基本クラスが最後)。基本クラスのデストラクタを呼び出さないでください。

おすすめ記事