为什么需要在定义时初始化引用变量?

时间:2016-04-11 19:57:02

标签: c++ reference initialization standards

我试图寻找答案,但到目前为止还没有运气。我的问题是 - 为什么引用变量在定义时需要初始化?这是技术原因,还是仅仅是标准不允许的内容?

以此代码为例:

int number = 42;
int& numberRef;
numberRef = number;

以上不允许,但以下代码为:

int number = 42;
int& numberRef = number;

为什么编译器不能像未初始化的指针一样处理未初始化的引用变量?我在这里找不到什么东西?

1 个答案:

答案 0 :(得分:8)

如果引用未初始化,则无法对其进行初始化,因为任何分配给引用的尝试始终会分配给它的引用。

int& numberRef;     // pretend this is allowed
numberRef = number; // copies number into some random memory location