网站搭建,上海企业联系方式,中国机械设备网官网,建设工程施工合同在哪个网站引言
当创建一个类的对象时调用该类的构造函数#xff1b;若为继承关系的类#xff0c;则先执行父类的构造函数#xff0c;再执行子类的构造函数#xff1b;若为继承关系的类#xff0c;该类中含有其它类类型的成员变量#xff0c;那么其构造函数的调用顺序该如何呢。今…引言
当创建一个类的对象时调用该类的构造函数若为继承关系的类则先执行父类的构造函数再执行子类的构造函数若为继承关系的类该类中含有其它类类型的成员变量那么其构造函数的调用顺序该如何呢。今天记录该问题。
验证示例
下面以简单的代码来验证这个问题只需打断点调试即可值答案。
class A {
public:A() {}~A(){}
};class C {
public:C() {}~C() {}void have() {cout have() endl;}
};
class B :public A {
public:B():A(){m_c.have();//这里写不写这行代码都对最终的结果无影响}~B(){}void play() {m_c.have();}
private:C m_c;
};结果
上述代码放入自己的项目中调试后的结果为 先执行父类的构造函数再执行类中所含类类型对象的构造函数最后执行该类的构造函数。