为什么让非常量引用指向一个常量对象没有报错?
为什么让非常量引用指向一个常量对象没有报错?还有int &r4 = r2 * 2;//非常量引用的初始值必须是左值 这里我明白是为了不让通过非常量修改常量的值
可是这里这里 r1 = r2;//非常量引用绑定到常量上 , 然后我通过r1修改了常量r2的值。
程序代码:
#include <iostream> #include <stdio.h> using namespace std ; int main( ) { int a1 ; const int a2=1 ; a1 = a2 ;//常量赋值给非常量 //a2 = a1;//常量不可以修改 int &r1 = a1; const int &r2 = a1;//常量引用可以绑定到非常量上 r1 = r2;//非常量引用绑定到常量上 r1 = 88; cout << r2; // int &r4 = r2 * 2;//非常量引用的初始值必须是左值 return 0; }