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
在这种情况下,ri被绑定到一个临时对象。临时对象是未命名对象 对象,该对象由编译器在需要存储计算结果的位置时创建 表情。C++程序员经常使用“临时”这个词作为缩写。 用于临时对象。 现在考虑如果允许这种初始化,但RI不是什么会发生什么 康斯特。如果ri不是常量,我们可以分配给ri。这样做将改变现状 ri绑定到的对象 我可能错了,但我认为引用不能“重新定位”或“重新绑定”。我的问题是最后一句话: 如果ri不是常量,我们可以分配给ri。这样做将改变现状 ri绑定到的对象。 这是书中的错误,还是我误解了什么 根据我的理解,引用可以被认为是变量的别名或替代名称,尽管我不能完全确定这是否正确 谢谢你抽出时间 这样做会更改ri绑定到的对象 这个句子有点模棱两可。你把它解读为“这样做会改变ri绑定到哪个对象”,但这不是作者的意思。它应该被解读为 这样做会对对象(即ri绑定到的对象)进行更改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绑定到的对象。 这是书中的错误,还是我误解
根据我的理解,引用可以被认为是变量的别名或替代名称 完全正确。例如:
int i = 0;
int &r = i;
r = 42;
此处
r
是i
的别名,因此最后一行中对r
的赋值会更改(即设置为42
)绑定到r
的对象(即i
)。换句话说,它将i
设置为42
语言模糊。它只意味着说“如果ri
不是常量,那么ri
的赋值将赋值给temp
,但由于它是常量引用,所以根本不可能赋值”。根本没有关于重新绑定引用的内容。