【问题标题】:why when i rebind the reference of c++ , the compiler doesn't report error为什么我重新绑定c++的引用,编译器不报错
【发布时间】:2016-04-13 00:49:55
【问题描述】:

c++ 入门 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

【问题讨论】:

  • 尝试打印ar。没有重新绑定,您只是通过引用分配给a
  • 一旦进行了引用,它所引用的事物的引用就成为(几乎)所有方面的同义词。说 r=b 和说 a=b 是一样的。

标签: c++


【解决方案1】:

你没有重新绑定。相反,您将 b 的值分配给了 a

打印出分配之前和之后的地址,自己检查一下:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-24
    • 2012-06-20
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多