[英]Does order of inheritance between class and interface matter?
它将使任何区别,我们是否继承class
第一或interface
在C++
?
例:
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
------
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.