概述
引用
写在前面的话(可忽略……灰话)!
引用与指针一直都是各种笔试与面试的常见的题目,而且在编程过程中往往会出现这样或那样的问题,最近又拿起了PRIMER来看,记下一点看书笔记。
引用与指针在C++中称作复合类型,这是相对于简单的INT等类型而言的。
1.引用
引用其实是一个左值引用。
1.1 定义
引用为对象起了另外一个名字,引用类型引用另外一种类型。引用并非对象,它只是给已经存在的对象起了另外一个名字而已。引用即别名!定义引用类型的方法将声明符写成&refVal,其中refVal为声明的变量名。
//refVal指向ival(是ival的另外一个名字)
int ival = 1024;
int &refVal = ival;
1.2 初始化
引用是需要初始化的,而且是必须初始化的。
对于一般变量,它们在初始化时,初始值会被拷贝到新建的对象中。然而在定义引用时,程序会把引用与它的初始值进行绑定在一起,而不是简单的将初始值拷贝给引用。因而一旦初始化完成,引用将和它的初始值对象一直绑定在一起。而对于引用的特性它不允许一个引用绑定到多个对象,因此对于引用它必须被初始化之后才能使用。
//refVal指向ival(是ival的另外一个名字)
int ival = 1024;
int &refVal1= ival; //正确:refVal1被初始化为ival的值
int &refVal2;//报错:refVal2引用必须初始化
1.2 引用的操作
在定义一个引用之后,对于引用的所有操作,其实就是针对于被引用绑定的对象的操作。而获取引用的值其实就是获取与引用绑定的对象的值。当将引用作为初始值时,其实际上是以与引用绑定的对象作为初始值。
refVal = 2;//把2赋值给指向的对象,此外是赋给了ival
int ii = refVal;//与执行ii = ival结果一样
//正确:refVal3绑定到了那个与refVal绑定的对象上,这里就是绑定到ival上
int &refVal3 = refVal;
//利用与refVal绑定的对象的值初始化变量i
int i = refVal;//正确:被初始化为ival的值
在应用引用时要注意以下几点:
- 引用必须初始化;
- 一个引用只能对应一个对象;
- 引用不能被初始化为字面值或者计算结果;
- 引用与对象的数据类型需要一致。
最后
以上就是甜美日记本为你收集整理的C++ Primer之引用引用的全部内容,希望文章能够帮你解决C++ Primer之引用引用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复