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

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 引用)