相关疑难解决方法(0)

为什么派生类的大小包括基类的私有成员?

我有以下代码:

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

6
推荐指数
3
解决办法
1931
查看次数

C++类内存模型和对齐

我有几个问题要问与C++中的数据位置和对齐有关.类是否具有与结构相同的内存位置和内存对齐格式?

更具体地说,是否根据数据的声明顺序将数据加载到内存中?功能会影响内存对齐和数据位置还是分配到其他位置?一般来说,我保留所有内存对齐和位置相关的东西,如文件头和算法数据在结构中.我只是想知道这是否是类所固有的,因为它是结构,如果我选择使用这种方法,它是否会很好地转化为类.

编辑:谢谢你的所有答案.他们真的帮了很多忙.

c++ memory arrays position alignment

4
推荐指数
1
解决办法
820
查看次数

标签 统计

c++ ×2

alignment ×1

arrays ×1

inheritance ×1

memory ×1

position ×1