在C ++中更改引用

时间:2012-03-14 03:49:32

标签: c++ reference

来自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

的链接

4 个答案:

答案 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;
}

Guess what this prints.

答案 1 :(得分:0)

在说u = y;时,您没有更改参考。您只需将y的值分配给仍由f引用的变量u

请检查f的值以查看效果。

答案 2 :(得分:0)

当你调用'u = y;'时,你只需将y的值赋给你引用的变量(它的f)。 基本上,引用在变量编译器下实现为“指针”,操作'u = y;',只需将内存设置为y的值。

答案 3 :(得分:0)

初始化后,参考值不能改变;它总是引用它初始化的同一个对象来表示..