您的位置:首页 > 编程语言 > C语言/C++

const 引用(c++primer笔记)

2014-04-14 21:49 162 查看
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

可以读取但不能修改 refVal ,因此,任何对 refVal 的赋值都是不合法的。这个限制有其意义:不能直接对
ival 赋值,因此不能通过使用 refVal 来修改 ival。

同理,用 ival 初始化 ref2 也是不合法的:ref2 是普通的
const 引用
,因此可以用来修改 ref2 指向的对象的值。通过
ref2 对 ival 赋值会导致修改 const 对象的值。为阻止这样的修改,需要规定将普通的引用绑定到
const 对象是不合法的。

const 引用可以初始化为不同类型的对象或者初始化为右值(第 2.3.1 节),如字面值常量:
int i = 42;
//  legal for const references only
const int &r = 42;
const int &r2 = r + i;

总结:const引用可以用于连接const和非const对象,非const引用只能连接非const对象。也表明了权限只能越来越严格,不能越来越松。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: