const引用 非const引用

const引用与非const引用

六月ゝ 毕业季﹏ 提交于 2019-12-10 04:26:15
const引用可读不可改,与绑定对象是否为const无关,注意区分const引用与对const对象的引用 非const引用可读可改,只可与非const对象绑定 const int ival = 1024; const int &refVal = ival; // ok: both reference and object are const int &ref2 = ival; // error: non const reference to a const object 非 const 引用只能绑定到与该引用同类型的对象。 const 引用则可以绑定到不同但相关的类型的对象或绑定到左值。 const 引用可以初始化为不同类型的对象或者初始化为右值 ,如字面值常量: int i = 42; // legal for const references only const int &r = 42 ; const int &r2 = r + i ;// 同样的初始化对于非 const 引用却是不合法的,而且会导致编译时错误 。 double dval = 3.14; const int &ri = dval; 编译器会把这些代码转换成如以下形式的编码: int temp = dval; // create temporary int from the double const int