c++ - 为什么我重新绑定(bind)c++的引用,编译器不报错

标签 c++

c++ primer 2.3.1 说:一旦初始化,引用仍然绑定(bind)到它的初始对象。无法重新绑定(bind)引用以引用不同的对象。 但是我的代码运行良好:

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

运行结果为:

2

最佳答案

您没有重新绑定(bind)。相反,您将 b 的值分配给 a

通过打印分配前后的地址来自己检查一下:

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

关于c++ - 为什么我重新绑定(bind)c++的引用,编译器不报错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36586639/

相关文章:

支持多个编译器的 C++ 代码

c++ - 带有两个参数包的模糊函数调用

c++ - 跨 std 实现工作的互斥体

c++ - 有没有更好的方法来反转内存中的字节数组?

c++ - 模板类/结构组合的好方法

c++ - Net-SNMP - 在新的 MIB 模块中编译,而不编译整个 SNMP 代理

c++ - 如何测试B类是否派生自A类?

c++ - HOG 使用 OpenCV、HOGDescriptor 在 C++ 中进行可视化

c++ - C++,可以采用ifstream或istringstream的函数

C++ 代码未在 NetBeans 8.0 中编译(msys mkdir 可能存在问题)