永发信息网

C++多重继承构造函数的调用次序问题

答案:3  悬赏:60  手机版
解决时间 2021-02-13 18:11
C++多重继承构造函数的调用次序问题
最佳答案
根据C++对于虚基类的构造函数“最晚辈派生”调用规则,所有的虚基类的构造函数都要由 a 的构造函数最先调用,系统中有两个虚基类:c 和 e,但由于 e 是 c 的基类,所以 e 的构造函数要先调用(这是第1),c 还有一个基类是 d,也要调用构造函数(这是第2),然后才是调用 c 的构造函数(这是第3)。
c 初始化完后,再初始化 b,而 b 两个基类 d 和 e,e 是虚基类,已经初始化过了,然后是基类 d,要先调用其构造函数 (这是第4),然后是 b 自己的构造函数调用(这是第5)。
c 和 b 都初始化完成了,最后调用 a 的构造函数(这是第6)。
所以整个的顺序是 e,d,c,d,b,a。
全部回答
从下往上 运行 a 的构造函数 必须先 运行 其父类的构造函数
所以要运行 b c的构造函数 虚基类的父类构造函数先运行
先 运行c 的 构造函数 必须运行 其父类的构造函数 e d
e 是 虚基类的父类构造函数先运行
所以是 e d c e d b a
但是 虚基类的构造函数 只调用一次
所以 e d c d b a
也就是说 分为 b c 两部分看就好 比较清晰
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
为什么我的手机信息设置储存转不到内存卡上面
中国移动手机连锁卖场南通三阳店在什么地方啊
电销贷款好做吗
龙业五金批发部地址在哪,我要去那里办事
少女看妇科可以去妇幼保健院吗
左“酉”右“上”是个什么字
潜在旅游资源转化为现实旅游资源,其实质是观
郑远元专业修脚房长青路店在什么地方啊,我要
DNA和干扰RNA可以共转染吗
侯爵音乐酒吧地址在哪,我要去那里办事
那郎村这个地址在什么地方,我要处理点事
想入个前端,HIFIMAN HM650调音怎么样?
批发钢筋是到柳州好还是南宁好
【2013辽宁高考】2013辽宁高考英语作文2013年
据点休闲酒吧地址好找么,我有些事要过去
推荐资讯
沧州市新华区个体私营经济协会在什么地方啊,
阳光足疗城我想知道这个在什么地方
【人的时间】古代人如何记录时间、怎么表达时
Q5刹车咯咯响,有没有懂的车友帮忙解决,各位
请问京东正品率有多高?
迈腾轿车前叶子板拆装步骤,大家对此有了解吗
昨天早上流了一些血,我以为是月经没太在意,可
龙在边缘里的某人是谁?
我在手机优酷里下载了视频到SD卡里,我想用读
大楼村在哪里啊,我有事要去这个地方
阅读理解HOUSTON(Reuters)—HoustontopsaU.S.
学生会文娱部是干嘛的?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?