オブジェクトの作成に関するちょっとした質問。次の 2 つのクラスがあるとします。
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;
};
そして主に次のインスタンスを作成しますB:
int main(){
B b;
}
Bから派生しA、 type のフィールドも持っていることに注意してくださいA。
ルールを理解しようとしています。オブジェクトを構築するときは最初にその親コンストラクターを呼び出し、破棄するときはその逆であることを私は知っています。
フィールド (A a;この場合) はどうですか? はいつ作成され、いつコンストラクターBを呼び出しますか? A初期化リストを定義していません。デフォルトのリストのようなものはありますか? そして、デフォルトのリストがない場合は? そして、破壊についての同じ質問。