关于创建对象的一个小问题。说我有这两个类:
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的构造函数?我还没有定义初始化列表,是否有某种默认列表?如果没有默认列表?关于破坏的同样问题。
qq_花开花谢_0
宝慕林4294392
摇曳的蔷薇
相关分类