在C++
中先继承class
还是继承interface
会有区别吗?
的例子:
class A : public IAbstract, public ClassB
{
};
class A : public ClassB, public IAbstract
{
};
直接基类(即ClassB
和IAbstract
)的初始化顺序不同。它由基类说明符列表中的声明顺序决定。
(强调我的)
2)然后,直接基类按照从左到右的顺序初始化,因为它们出现在该类的基说明符列表
是,对象布局将不同。但是在功能上是等价的。
在第一种情况下,对象布局将是这样的:
------
IAbstract members, including vptr
------
Class B members
------
第二种情况:
------
Class B members
------
IAbstract members, including vptr
------