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



C++中先继承class还是继承interface会有区别吗?

的例子:

class A : public IAbstract, public ClassB
{
};
class A : public ClassB, public IAbstract
{
};

直接基类(即ClassBIAbstract)的初始化顺序不同。它由基类说明符列表中的声明顺序决定。

(强调我的)

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

是,对象布局将不同。但是在功能上是等价的。

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

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

第二种情况:

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

最新更新