来自C++常见问题解答
“如何重新放置引用以使其引用不同的对象?”
但是当我这样做的时候,它编译和执行得很好。
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链接
发布于 2012-03-14 11:52:33
您不需要重新设置引用,只需将其赋值给所引用的对象。
#include <iostream>
struct X{
void operator=(X const&){
std::cout << "Woops, assignment!\n";
}
};
int main(){
X x, y;
X& rx = x;
rx = y;
}Guess what this prints.
发布于 2012-03-14 11:54:57
通过说int &u=f;然后u=y;,你将y的值赋给f,因为f是由引用u引用的。因此,你不是在重新设置引用,而是简单地改变了f的值。
发布于 2012-03-14 11:52:51
当你说u = y;时,你没有改变引用。您只是将y的值赋给仍然由u引用的变量f。
请检查f的值,看看效果如何。
https://stackoverflow.com/questions/9695657
复制相似问题