オブジェクト指向プログラミングでは、クラスは基本クラスから継承し、派生クラスがプロパティを継承する階層関係を作成できます。そして親クラスの動作。これらのクラスのオブジェクトを作成および破棄する場合、コンストラクターとデストラクターの呼び出しの順序は、オブジェクトの初期化と終了において重要な役割を果たします。
指定された例の場合:
struct A { A() { cout << "A() C-tor" << endl; } ~A() { cout << "~A() D-tor" << endl; } }; struct B : public A { B() { cout << "B() C-tor" << endl; } ~B() { cout << "~B() D-tor" << endl; } A a; // Field of type A in class B };
および次のとおりです。メインのコード:
int main() { B b; }
デストラクター呼び出しの順序は、構築順序のまったく逆です:
初期化子リストが使用されているかどうかに関係なく、構築と破棄の呼び出し順序はこれらの原則に従い、継承内のオブジェクトの適切な初期化とクリーンアップが保証されます。階層。
以上が継承におけるコンストラクターとデストラクターの正確な呼び出し順序は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。