引用能够引用不同的对象(不在迭代/循环体中)

SLN*_*SLN 3 c++ reference c++11

有关于此的问题但似乎与迭代场景有关.我在这里有不同的情况.参考定义和"重新分配"发生在同一范围内.

#include <iostream>
using namespace std;

int main(void) {
    int obja = 10, objb = 20;
    int &r = obja;
    cout << r << endl; // prints the 10
    r = objb; // ???? re-assigning worked? 
    cout << r << endl; // prints the 20
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

题:

我错误地理解了什么?

Yun*_*sch 5

您重新分配一个新的价值obja,通过r.
新值恰好是值objb.
这不会重新关联引用robjb,我想你可能通过什么似乎是重新关联到一个新的变量的引用的演示所迷惑.这不会发生.您可以演示如果最后添加会发生什么,例如

cout << obja << " " << objb << endl;
Run Code Online (Sandbox Code Playgroud)