1、引用就是对象的另一个名字,在实际程序中,引用主要用作函数的形式参数。
const int &refVal
= ival;
const int &r = 42;
const int &r2 = r+i;
引用是一种复合类型,通过在变量名前添加“&”符号来定义,复合类型是指向其他类型定义的类型。在引用的情况下,每一种引用类型都“关联到”某一其他类型。不能定义引用类型的引用,但可以定义任何其他类型的引用。
引用必须用与该引用同类型的对象初始化,不可将引用绑定到另一个对象:
int ival = 1024;
int &refVal = ival;//OK
int &refVal2; //error
int &refVal3 = 10 ;//error
2、const引用:指向const对象的引用。
如: const int ival = 1024;
const引用可以初始化为不同类型的对象或者初始化为右值,如字面值常量。
如: int i = 42;
3、非const引用只能绑定到与该引用同类型的对象。const引用则可以绑定到不同但相关类型的对象或绑定到右值。const引用可以绑定到const对象、非const对象或右值的引用。