关于创建对象的一个小问题。假设我有这两个类:
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
并且还有一个类型为 的字段A
。
我试图弄清楚规则。我知道在构造对象时首先调用其父构造函数,反之亦然。
字段(A a;
在这种情况下)呢?什么时候B
被创建,什么时候调用它A
的构造函数?我还没有定义初始化列表,是否有某种默认列表?如果没有默认列表?还有关于破坏的同样问题。