1、深入探讨 C+中的引用摘要:介绍 C+引用的基本概念,通过详细的应用分析与说明,对引用进行全面、透彻地阐述。关键词:引用,const,多态,指针引用是 C+引入的新语言特性,是 C+常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖引玉的作用。引用简介引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 int /定义引用 ra,它是变量 a 的引用,即别
2、名说明:(1) 等价于 a=1; (5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。故:对引用求地址,就是对目标变量求地址。 p=p1; p1=p2; p2=p; 为在程序中调用该函数,则相应的主调函数的调用点处,直接以变量作为实参进行调用即可,而不需要实参变量有任何的特殊要求。如:对应上面定义的 swap 函数,相应的主调函数可写为:main( ) int a,b;cinab; /输入 a,b 两变量的值swap(a,b); /直接以变量 a 和 b 作为实参调用 swap 函数 c
3、outfloat temp; /定义全局变量 tempfloat fn1(float r); /声明函数 fn1float /声明函数 fn2float fn1(float r) /定义函数 fn1,它以返回值的方法返回函数值 temp=(float)(r*r*3.14); return temp; float return temp;void main() /主函数 float a=fn1(10.0); /第 1 种情况,系统生成要返回值的副本(即临时变量)float /第 2 种情况,可能会出错(不同 C+系统有不同规定)/不能从被调函数中返回一个临时变量或局部变量的引用float c=f
4、n2(10.0); /第 3 种情况,系统不生成返回值的副本/可以从被调函数中返回一个全局变量的引用float /第 4 种情况,系统不生成返回值的副本/可以从被调函数中返回一个全局变量的引用cout ,这两个操作符常常希望被连续使用,例如:cout int int vals10;int error=-1;void main()put(0)=10; /以 put(0)函数值作为左值,等价于 vals0=10; put(9)=20; /以 put(9)函数值作为左值,等价于 vals9=10; cout=0 & n、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。