继承下构造函数的执行顺序

本文探讨了C++中派生类构造函数的执行顺序,包括虚拟基类、普通基类、类类型成员对象的构造顺序,并通过Son1到Son5的示例验证了这些规则。Son2展示了即使不显示初始化基类构造函数,也会按照顺序调用默认构造函数。Son5揭示了在派生类构造函数中直接初始化类类型成员对象是不可行的,因为类声明中无法分配内存。
摘要由CSDN通过智能技术生成

这里先给出结论,在贴出代码与执行结果~

 

一个派生类构造函数的执行顺序如下:

第一步执行:虚拟基类的构造函数(多个虚拟基类则按照继承的顺序执行构造函数)。

第二步执行:基类的构造函数(多个普通基类也按照继承的顺序执行构造函数)。

第三步执行:类类型的成员对象的构造函数(按照初始化顺序)。

第四部执行:派生类自己的构造函数。

 

如果一个派生类不仅继承于一个基类,而且还有这个基类的成员对象,那么会进行两次构造函数的执行(一个用于初始化派生类中基类部分的内部成员,另一个是初始化派生类的基类类型成员变量的内部成员),详细看派生类Son2的执行结果。

下面声明了A,B,C,D,Object1,Object2留个基类以及Son1Son2Son3Son4Son5Son5

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值