为什么C++中没有常量引用?

use*_*748 -1 c++ const reference

我知道我不能写long& const x.但为什么不呢?从理论上讲,我可以对x进行持续的引用.我只是无法将引用设置为另一个地址.

为什么在C++中禁止它?

编辑:我知道有些东西我不明白,但我可以指定另一个变量的引用.这段代码有效:

#include <iostream>

int main()
{
 int a = 1, b = 2;
 int & x = a;
 x = b;
 return 0;
}
Run Code Online (Sandbox Code Playgroud)

但这与你所说的相矛盾.

eml*_*lai 6

参考文献已经不变.

初始化后,您无法重新分配它们以引用另一个变量,并且必须始终初始化它们以引用变量.

在您的示例中,代码没有按照您的想法执行:

x = b;不重新分配xb,它分配的值b,以该变量x被引用的,即a.

引用只是变量的别名,另一个名称.这意味着您可以替换xwith的每个实例a,并且行为将是相同的.