码迷,mamicode.com
首页 > 编程语言 > 详细

C++primer: 引用&与 const 引用

时间:2016-05-12 22:17:45      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

1.什么是引用?

引用就是对象的另外一个名字。在实际程序中,引用主要用作函数的形式参数。
引用是一种复合类型,通过在变量名前面添加“&”符号来定义。复合类型是指用其他类型定义的类型。在引用的情况下,每一种引用类型都“关联到”某一其他类型。不能定义引用类型的引用,但是可以定义任何其他类型的引用。
引用必须用与该引用同类型的对象初始化:
int ival = 1024;
int& refVal = ival;// ok:refVal refer to ival
int& refVal2; //error: a reference must be innitialized
int& refVal3 =10; //error: cannot take type"int" to "int&"
引用就是一个别名!!!
因为引用只是他绑定的对象的另一个名字,作用在引用上的所有操作事实上都是作用在该引用绑定的对象上!!!

2.如何定义多个引用?

C++允许在一个定义行中定义多个引用。但是,必须在每个引用标识符前添加“&”符号:

3. const 引用

const引用是指向const类型的引用!

const int ival = 1024;
const int& refVal = ival; // ok: both reference and object are const
int& refVal2 = ival; // erroe: non const reference to a const object

经过const限定符修订后,我们可以读取但是不能修改refVal,因此,任何对refVal得再次赋值都是非法的。这个限定是有意义的,不能直接对ival赋值,因此不能通过refVal来修改ival;

经过const限定后,我们就可以初始化为右值,如字面值常量:

int ival = 42;
// legal for const reference only
const int& refVal = 42;
const int& refVal = ival +1;
需要注意的是,同样的初始化方法对于非const引用是不合法的,并且会导致编译的错误。


C++primer: 引用&与 const 引用

标签:

原文地址:http://blog.csdn.net/shenziheng1/article/details/51352820

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!