Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C+中的引用重新分配+;底漆 < C++ >第五版,在参考文献和 const 中,第997页: const int temp = dval; // create a temporary const int from the double const int &ri = temp; // bind ri to that temporary_C++_Reference - Fatal编程技术网

C+中的引用重新分配+;底漆 < C++ >第五版,在参考文献和 const 中,第997页: const int temp = dval; // create a temporary const int from the double const int &ri = temp; // bind ri to that temporary

C+中的引用重新分配+;底漆 < C++ >第五版,在参考文献和 const 中,第997页: const int temp = dval; // create a temporary const int from the double const int &ri = temp; // bind ri to that temporary,c++,reference,C++,Reference,在这种情况下,ri被绑定到一个临时对象。临时对象是未命名对象 对象,该对象由编译器在需要存储计算结果的位置时创建 表情。C++程序员经常使用“临时”这个词作为缩写。 用于临时对象。 现在考虑如果允许这种初始化,但RI不是什么会发生什么 康斯特。如果ri不是常量,我们可以分配给ri。这样做将改变现状 ri绑定到的对象 我可能错了,但我认为引用不能“重新定位”或“重新绑定”。我的问题是最后一句话: 如果ri不是常量,我们可以分配给ri。这样做将改变现状 ri绑定到的对象。 这是书中的错误,还是我误解

在这种情况下,ri被绑定到一个临时对象。临时对象是未命名对象 对象,该对象由编译器在需要存储计算结果的位置时创建 表情。C++程序员经常使用“临时”这个词作为缩写。 用于临时对象。 现在考虑如果允许这种初始化,但RI不是什么会发生什么 康斯特。如果ri不是常量,我们可以分配给ri。这样做将改变现状 ri绑定到的对象

我可能错了,但我认为引用不能“重新定位”或“重新绑定”。我的问题是最后一句话:

如果ri不是常量,我们可以分配给ri。这样做将改变现状 ri绑定到的对象。

这是书中的错误,还是我误解了什么

根据我的理解,引用可以被认为是变量的别名或替代名称,尽管我不能完全确定这是否正确

谢谢你抽出时间

这样做会更改ri绑定到的对象

这个句子有点模棱两可。你把它解读为“这样做会改变ri绑定到哪个对象”,但这不是作者的意思。它应该被解读为

这样做会对对象(即ri绑定到的对象)进行更改


根据我的理解,引用可以被认为是变量的别名或替代名称

完全正确。例如:

int i = 0;
int &r = i;
r = 42;

此处
r
i
的别名,因此最后一行中对
r
的赋值会更改(即设置为
42
)绑定到
r
的对象(即
i
)。换句话说,它将
i
设置为
42

语言模糊。它只意味着说“如果
ri
不是常量,那么
ri
的赋值将赋值给
temp
,但由于它是常量引用,所以根本不可能赋值”。根本没有关于重新绑定引用的内容。