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