【C++】在<多继承>中,类构造函数的调用顺序

本文详细介绍了C++中的继承机制,特别是多继承时构造函数的调用顺序。强调了在多继承中,虚基类会先于非虚基类构造,接着是成员对象的构造,最后执行派生类自身的构造函数。通过实例展示了这一顺序,帮助读者理解这一关键概念。
摘要由CSDN通过智能技术生成


前言

今天笔记的主要内容是:

  • 多继承的构造顺序

继承的总结

C++支持类的继承机制:

  • 继承是面向对象设计的关键概念之一。

  • 子类可以继承父类的所有公有和保护的数据成员和成员函数。

  • 访问权限为保护的父类,对于子类来说是公有的,但对于其他类来说是无法访问的。

  • 对于派生类来说,基类中的私有成员也是无法访问的

  • C++支持多重继承

  • 多重继承指的是一个类派生于多个基类

  • 多重继承使得子类获取了多个基类的属性

  • 对于上述,无论是继承还是多重继承,我们一般指的是公有方式的继承,即公共继承。

  • 因为在类编程中,公共继承占多数,保护继承和私有继承比较少。


多继承下的构造顺序

无论是单继承还是多继承,派生类的构造函数都会激活所有基类的构造函数。并将相应的参数传递给它们。

在继承机制下,构造对象的顺序为:

  1. 虚继承基类的构造
  2. 非虚继承基类的构造
  3. 成员对象的构造
  4. 类自己的构造

举个例子,看下列代码:

输出结果如下:

可以看出:

子类Son的虚基类Base1最先构造。

尽管在子类Son中继承的顺序并不是最前面。

接着,子类的非虚继承Base2其次构造。

子类的成员对象Base3随后构造.

而最后才是子类Son自己构造函数的调用。


写在最后

好了,本篇笔记就到写这,欢迎大家到评论区一起讨论!

备注:本章内容参考书

《C++程序设计教程》---- 钱能 著

评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

翼同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值