我有以下代码:
class A {
private:
int i;
};
class B : public A {
private:
int j;
};
Run Code Online (Sandbox Code Playgroud)
当我检查时sizeof(B),似乎是sizeof(base) + sizeof(derived).但是,我对继承的理解是private基类的成员不会被继承.那为什么他们被包括在结果中sizeof(B)呢?
我有几个问题要问与C++中的数据位置和对齐有关.类是否具有与结构相同的内存位置和内存对齐格式?
更具体地说,是否根据数据的声明顺序将数据加载到内存中?功能会影响内存对齐和数据位置还是分配到其他位置?一般来说,我保留所有内存对齐和位置相关的东西,如文件头和算法数据在结构中.我只是想知道这是否是类所固有的,因为它是结构,如果我选择使用这种方法,它是否会很好地转化为类.
编辑:谢谢你的所有答案.他们真的帮了很多忙.