为什么引用变量需要在定义时初始化
Why do reference variables need to be initialized at definition?
我试着四处寻找答案,但到目前为止运气不佳。我的问题是,为什么引用变量在定义时必须初始化?这是技术原因,还是标准不允许?
以这个代码为例:
int number = 42;
int& numberRef;
numberRef = number;
上面是不允许的,但下面的代码是:
int number = 42;
int& numberRef = number;
为什么编译器不能像对待未初始化指针一样对待未初始化的引用变量?我这里缺什么了吗?
如果引用未初始化,则无法初始化它,因为任何分配给引用的尝试都会分配给它的引用。
int& numberRef; // pretend this is allowed
numberRef = number; // copies number into some random memory location
相关文章:
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- Boost Python Numpy - 要初始化的未定义引用
- 虚拟成员函数的定义是否强制在同一转换单元中动态初始化静态数据成员?
- C++类中的类作为自定义向量(如何初始化?
- 初始化类定义中的结构数组
- C++ 如何检查 char 变量是否未定义(未初始化)
- C++列表初始化允许多个用户定义的转换
- (2 问题)"类"类型重新定义(即使 #pragma 一次),以及静态函数内的静态成员对象初始化?
- (C++)我的自定义数组无法初始化(编译错误)
- 类模板静态数据成员定义/声明/初始化
- 初始化在类类型 #define 中定义的非静态成员数组,不带默认 ctor
- 在另一个文件中初始化的 extern 数组中未定义的引用
- thread_local静态成员模板定义:初始化失败,GCC
- 通过用户定义的转换初始化引用
- 自定义初始化数组与 std::make_unique
- C++具有自定义初始化的静态调度
- 导入错误:动态模块未定义初始化函数
- 有没有一种标准的方法可以在初始化阶段运行一些代码并定义初始化的顺序
- C++,为什么我不能把带有参数的类构造函数的定义-初始化列表放在类声明之外
- 是否需要在头文件中定义初始化列表