为什么当重新绑定c ++的引用时,编译器不会报告错误

时间:2016-04-13 00:49:56

标签: c++

c ++ primer 2.3.1说:一旦初始化,引用仍然与其初始对象绑定。无法重新绑定引用以引用其他对象。 但我的代码效果很好:

#include <iostream>
int main()
{
    int a = 1, b = 2;
    int &r = a;
    r = b;
    std::cout << r << std::endl;
    return 0;
}

运行结果是:

2

1 个答案:

答案 0 :(得分:7)

你没有重新绑定。相反,您已将b的值指定为a

通过在该作业之前和之后打印出地址来自行检查:

std::cout << "a: " << &a << std::endl;
std::cout << "b: " << &b << std::endl;
std::cout << "r: " << &r << std::endl;