来自C ++ FAQ
“如何重新设置引用以使其引用不同的对象?”
但是当我这样做时,它编译并执行得很好。
int f = 5;
int y =4;
int& u = f;
u = y;
B& bRef = B();
bRef = B();
这段代码在我的main()函数中。
C ++常见问题解答https://isocpp.org/wiki/faq/references#reseating-refs
的链接答案 0 :(得分:2)
您不重新设置引用,只需分配给引用的对象。
#include <iostream>
struct X{
void operator=(X const&){
std::cout << "Woops, assignment!\n";
}
};
int main(){
X x, y;
X& rx = x;
rx = y;
}
答案 1 :(得分:0)
在说u = y;
时,您没有更改参考。您只需将y
的值分配给仍由f
引用的变量u
。
请检查f
的值以查看效果。
答案 2 :(得分:0)
当你调用'u = y;'时,你只需将y的值赋给你引用的变量(它的f)。 基本上,引用在变量编译器下实现为“指针”,操作'u = y;',只需将内存设置为y的值。
答案 3 :(得分:0)
初始化后,参考值不能改变;它总是引用它初始化的同一个对象来表示..