我试图寻找答案,但到目前为止还没有运气。我的问题是 - 为什么引用变量在定义时需要初始化?这是技术原因,还是仅仅是标准不允许的内容?
以此代码为例:
int number = 42;
int& numberRef;
numberRef = number;
以上不允许,但以下代码为:
int number = 42;
int& numberRef = number;
为什么编译器不能像未初始化的指针一样处理未初始化的引用变量?我在这里找不到什么东西?
答案 0 :(得分:8)
如果引用未初始化,则无法对其进行初始化,因为任何分配给引用的尝试始终会分配给它的引用。
int& numberRef; // pretend this is allowed
numberRef = number; // copies number into some random memory location