c++ const引用与非const引用介绍

思念着她的美

思念着她的美

2016-02-19 11:05

下面请跟着图老师小编一起来了解下c++ const引用与非const引用介绍,精心挑选的内容希望大家喜欢,不要忘记点个赞哦!
const引用是指向const对象的引用。
代码如下:

const int i = 10;
const int &ref = i;

可以读取ref,但不能修改。这样做是有意义的,因为i本身就不可修改,当然也不能通过ref来修改了。所以也就有将const变量赋值给非const引用是非法的。
代码如下:

int &ref1 = i; // error: nonconst reference to a const object

非const引用是指向非const类型变量的引用。
const引用可以初始化为不同类型的对象或者右值(如字面值常量),但非const引用不可以。
代码如下:

// legal for const references only
int i = 10;
const int & ref = 42;
const int & ref1 = r + i;
double d = 3.14;
const int &ref2 = d;

以绑定到不同类型的ref2为例解释原因,编译器会把ref2相关的代码转换如下:
代码如下:

int temp = d;
const int &ref2 = temp; // bind ref2 to temporary

ref2实际上是绑定到一个临时变量上,如果ref2不为const,那么按道理就可以通过修改ref2而修改d的值,但实际上d并不会改变。所以为了避免这个问题,ref2只能是const。

非const引用只能绑定到与该引用同类型的对象,const引用则可以绑定到不同但相关的类型的对象或绑定到右值。
展开更多 50%)
分享

猜你喜欢

c++ const引用与非const引用介绍

编程语言 网络编程
c++ const引用与非const引用介绍

C++箴言:用传引用给const取代传值

编程语言 网络编程
C++箴言:用传引用给const取代传值

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

C++习题与解析-引用

编程语言 网络编程
C++习题与解析-引用

c++中const的使用详解

编程语言 网络编程
c++中const的使用详解

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

C++箴言:只要可能就用const

编程语言 网络编程
C++箴言:只要可能就用const

C++中的引用(1)

编程语言 网络编程
C++中的引用(1)

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Win8设置系统网络共享连接方法

Win8设置系统网络共享连接方法

FileUpload1 上传文件类型验证正则表达式

FileUpload1 上传文件类型验证正则表达式
下拉加载更多内容 ↓