参考内存分配技术

时间:2016-06-20 10:04:58

标签: c++ reference sizeof

我对参考文献的大小感到困惑 我已经采取了两个例子并编译了它

//示例程序

#include <iostream>
#include <string>

using namespace std;

class ABC
{

    int &y;
    ABC(int a):y(a)
    {
    }
};
int main()
{
  std::cout <<sizeof(ABC)<<endl;  
  return 0;
}

o / p - 8

当我在课堂上引用参考文献的大小时

//示例程序

#include <iostream>
#include <string>

using namespace std;
int main()
{
    int y = 7;
    int &x = y;

    cout<<sizeof(x);
}

o / p - 4

请确认为什么参考文献的大小在课程方面或在课程内部有所不同。

1 个答案:

答案 0 :(得分:1)

  

为什么引用的大小在类的内部或函数内部不同。

因为sizeof计算的对象不同。对于sizeof(x)sizeof operator将返回引用类型的大小,即int

  

应用于引用类型时,结果是引用类型的大小。

sizeof(ABC)将返回包含引用的类ABC的大小。他们不是一回事。

请注意,对于包含refrence的类的情况,标准没有说明应该如何实现引用以及表示的大小应该是什么,但是在大多数实现中,引用将被实现为指针,并且在64-位系统,地址是64位,因此您可能得到8的结果。