系统相关
首页 > 系统相关> > C内存继承布局

C内存继承布局

作者:互联网

如果我有两个类,一个继承自另一个类,而子类只包含函数,那么这两个类的内存布局是否相同?

例如

class Base {
  int a,b,c;
};

class Derived: public Base {
  // only functions.
};

我已经读过编译器不能重新排序数据成员,并且我不需要在Derived类上进行多重继承.是否存在内存布局不一样的情况? (Base类可能需要多重继承)

解决方法:

Base和Derived都在这里are standard layout classes.由于标准布局旨在与其他语言(最值得注意的是C)进行互操作,是的,您可以预期两者的布局相同.但是,如果向混合中添加多重继承,则结果可能是也可能不是标准布局类.您可以在上面链接的帖子中查看相关规则.

标签:memory-layout,c,inheritance
来源: https://codeday.me/bug/20190826/1728037.html