首页 > 解决方案 > 包含参考变量的对象的大小

问题描述

这是打印 16 和 4 作为答案,但它应该打印为 8 和 4,因为两者a都是b整数类型变量。那么我们可以认为这是因为编译器将变量的地址存储a在一个单独的变量中,而复制到b这就是为什么它会导致4 + 4 + 8 = 16?如果不是,那是什么?

#include <iostream>
using namespace std;

class C {
public:
  int a = 45;
  int &b = a;
};

int main() {
  C ob1;
  cout << sizeof(ob1) << endl;
  cout << sizeof(ob1.b);

  return 0;
}

标签: c++

解决方案


推荐阅读