如何通过修改常量引用的变量实现数据同步至引用?

摘要:正常情况下被引用的对象改变,常量引用的值也跟着改变。i和j是同一个对象,所以是同步的: int i = 42; const int& j = i; i = 43; cout <&
正常情况下被引用的对象改变,常量引用的值也跟着改变。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;