繁体   English   中英

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

[英]Does order of inheritance between class and interface matter?

它将使任何区别,我们是否继承class第一或interfaceC++

例:

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
------

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM