《c++primer》学习随笔——引用

先讲个小例子:
有个小孩的名字叫李明,李明小的时候,父母给他起了个小名加:狗蛋。等他上学后,同学又给他起了个外号叫二明子。这样等于他有一个大名叫,李明。两个小名:狗蛋和二明子。如果有天,他的父母喊“狗蛋,去给我打瓶酱油去”,那么实际上李明就会去了。
很简单易懂的例子。

好了,开始说引用。
引用就是所绑定对象的一个别名、小名或者外号。这是最重要的了。
1、引用在定义时必须要初始化,也就是说在定义时必须要绑定好这是对那个对象的别名。相当于,你对李明起个小名,狗蛋。起狗蛋这个名字的前提是,李明已经存在了,要不这个外号是给谁起的啊?
2、对引用的任何操作,实际上是对绑定的那个对象的操作,同样对原始对象的操作,也就相当于对引用的操作,原始对象所属类型能做什么样的操作,引用就能做什么,原始对象不能做什么,引用也不能做什么,比如const对象定义后就不能再被赋值了,同样const引用定义后也就不能再赋值了。相当于,让狗蛋去打酱油(操作),实际就是李明打酱油,反过来也一样。同样李明(男孩)是不能进女厕所的,那么狗蛋也是不能进去的。
3、一个对象可以有多个引用,int cnt=0;int &c=cnt; int &d=cnt;  这也想当于,李明可以有多个外号,一个是狗蛋一个是二明子。

所以说要真正的理解引用,只要记住这个例子就OK了。


另外对于const引用需要注意的是:
const引用可以用非const变量来初始化,而且const引用可以用右值(比如一个数)初始化,还可以用不同但是类型相关的对象初始化(比如用double对象初始化int引用)
而非const引用不可以用const对象来初始化,不可以用右值只能用对象来初始化,也只能用严格相同类型的对象初始化。

因此可以看到const引用的用法很灵活,如果没有要修改原始对象的必要,尽量用const引用

posted on 2011-06-15 19:19 古月 阅读(191) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2011年6月>
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

导航

统计

常用链接

留言簿

随笔分类

随笔档案

文章档案

C++/C

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜