为什么参考变量在声明时需要初始化
Why reference variable needs to initialise while declaring
这是一个非常简单的问题,我有疑问,我想问所有人,
我们知道我们可以将参考声明为
int bar;
int &foo = bar;
我的问题是这种初始化背后的原因是什么?为什么必须这?另外,为什么我不需要在声明时初始指针?
int bar;
int *p;
p = &bar;
根据定义,参考必须参考 与有效的对象或POD类型。不允许非直接化,特别是什么都没有。另外,一旦初始化,它就无法更改以指代其他东西。因此,初始化它是在声明中唯一有意义的地方(如果是成员变量,则是类构造函数的初始化器列表(。
其他语言允许null引用和重新分配引用,但这不是它们在C 中的工作方式。
虽然指针可以为null(即,指向什么都没有指向(,但参考必须始终指向某物。它没有零状态。因此,它不能在不被初始化的情况下创建。
相关文章:
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 在函数内部的声明中初始化数组,并在外部使用它
- 有没有办法一次声明相同类型的多个对象,并通过一个表达式立即使用相同的右值初始化它们?
- 构造函数/函数声明参数列表中的统一初始化
- 使用直接大括号初始化时,C++ 编译错误"声明末尾的预期";"
- 强制使用默认构造函数对成员进行未初始化的声明
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- 初始化声明符是 prvalue 表达式吗?
- 智能指针可以单独向前声明和初始化吗?
- 在C++中,如果成员引用在其声明中初始化,为什么需要存储空间?
- C++ 通过函数声明后初始化向量
- C++声明变量时自动类型推断而不初始化
- C++ 警告:在一个声明中将截断从双精度初始化为浮点数,但在另一个声明中则不初始化
- 用初始化列表和超类构造函数声明子类构造函数的正确方式
- 在c++中的复制构造函数/一个声明语句中的初始化的延续中使用chain方法
- public:静态常量字符串声明/初始化问题
- 如何在成员初始化列表中声明共享指针
- c++:何时初始化声明的变量而不将其分配给任何值
- C++ 非整型模板 Const 初始化 预期在类名之前使用初始化声明符
- C++ 模板类编译错误:令牌之前'<'预期的初始化声明器