const 引用(c++primer笔记)
2014-04-14 21:49
162 查看
const 引用是指向
const 对象的引用:
可以读取但不能修改 refVal ,因此,任何对 refVal 的赋值都是不合法的。这个限制有其意义:不能直接对
ival 赋值,因此不能通过使用 refVal 来修改 ival。
同理,用 ival 初始化 ref2 也是不合法的:ref2 是普通的非
const 引用,因此可以用来修改 ref2 指向的对象的值。通过
ref2 对 ival 赋值会导致修改 const 对象的值。为阻止这样的修改,需要规定将普通的引用绑定到
const 对象是不合法的。
const 引用可以初始化为不同类型的对象或者初始化为右值(第 2.3.1 节),如字面值常量:
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对象。也表明了权限只能越来越严格,不能越来越松。
相关文章推荐
- 《C++ Primer第四版》学习笔记(六)变量和基本类型 - const、引用
- 【C/C++学院】(4)c++开篇/类和对象/命名空间/类型增强/三目运算符/const专题/引用专题/函数增强
- 函数形参为什么使用const引用(常引用)
- 返回指向const对象的引用
- C++ 指针 引用 const
- 我的C++学习日记——关于const数值变量,指针和引用的理解
- 在c++中const引用引发的几个小问题
- C++引用报错:invalid initialization of non-const reference of type ‘std::string&’ from an rvalue of type
- 强制转换const 引用
- 【C/C++学院】0820-Nullptr/const对象/类指针引用以及mallocfree与newde/类重载运算符/QT加法重载/类的重载赋值运算/自增在前在后差别/赋值重载深浅拷贝/重载下标
- c++ const引用与非const引用介绍
- const T*& 指针的引用、指针的指针、const
- C++ const引用详解
- const的引用
- 通过const引用
- const类型参数的对象引用和const成员函数
- 引用与数组,引用与类,引用与返回值,引用与多态,const引用,引用类型
- 面试宝典5,6,7--程序设计基本概念;预处理、const与sizeof;指针与引用
- 函数的输入参数引用为什么要加const
- C++中const及引用相关