类和接口之间的继承顺序是否重要?

时间:2016-08-24 08:27:27

标签: c++ inheritance multiple-inheritance

我们首先继承class还是interface继承C++会不会有什么不同?

示例:

class A : public IAbstract, public ClassB
{
};

class A : public ClassB, public IAbstract
{
};

2 个答案:

答案 0 :(得分:9)

initialization order直接基类(即bookmarkClassB)将有所不同。它由基类说明符列表中的声明顺序决定。

(强调我的)

  

2)然后,直接基类按从左到右的顺序进行初始化,因为它们出现在此类的基本说明符列表中

答案 1 :(得分:7)

是的,对象布局会有所不同。但从功能上来说,它是等价的。

在第一种情况下,对象布局将是这样的:

------
IAbstract members, including vptr
------
Class B members
------

在第二种情况下:

------
Class B members
------
IAbstract members, including vptr
------