正常情况下被引用的对象改变,常量引用的值也跟着改变。i和j是同一个对象,所以是同步的:
int i = 42; const int& j = i; i = 43; cout << j << endl; cout << i << endl; // i == j == 42;
但存在类型转换时,常量引用绑定的是double到int隐式转换后的临时int对象。i和j不是一个对象,所以数据不同步:
double i = 42.5; const int& j = i;//发生隐式转换,j引用了临时int对象 i = 43; cout << j << endl; cout << i << endl; // j == 42; i == 43;
正是上面那个道理,所以下面的i和j是同一个对象,所以是同步的:
int i = 42.5;//发生隐式转换,i引用了临时int对象 const int& j = i; i = 43; cout << j << endl; cout << i << endl;
// i == j == 42;
标签:同步,常量,int,43,c++,对象,引用 From: https://www.cnblogs.com/buachuan/p/16635735.html