有人可以解释这个继承代码吗?

时间:2016-12-29 13:03:58

标签: c++ oop inheritance

{{1}}

结果是A C A B D. 我的理解是D继承自C和B,如果在D中创建了一个对象“d”,那么它也有来自C和B的属性。由于B和C都从A继承,D也应该继承自A有人能解释一下结果吗?我的预测很远......

2 个答案:

答案 0 :(得分:1)

首先调用基础构造函数,然后调用主构造函数。

    D()
=>  C()    then  B()    then D
=>  A() C  then  A() B  then D
=>  A C    then  A B    then D
=>  A C A B D

Order of execution in constructor initialization list

答案 1 :(得分:0)

继承反映了IS A关系。

AD对象是C和B.AC依次是A.因此,要创建D的实例,运行时必须首先创建A然后创建C.这解释了输出的前两个字符。继续这个推理,你将得到其余的。