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引用是不合法的,并且会导致编译的错误。
时间: 2024-08-05 07:48:52