/**
*cppTest-3.6:引用
*
*引用虽然具有指针的一部分功能,但是限制还是很多的!
*author 炜sama
*/
#include<iostream.h>
int ia[]={1,2,3,4,5};
int &index(int i);
void swap(int &n1,int &n2);//声明时形参与定义时一样,表明形参为引用类型的
void main()
{
int i=5;
int &ri=i;
cout<<"i="<<i<<", ri="<<ri<<endl;
i=i*3;
cout<<"i="<<i<<", ri="<<ri<<endl;
ri=ri+5;
cout<<"i="<<i<<", ri="<<ri<<endl;
int a=3,b=5;
swap(a,b);//但是调用时实参不需要定义为引用的!因为这相当于把实参赋给了定义为引用类型的形参!
cout<<"a="<<a<<", b="<<b<<endl;
for(int j=1;j<5;j++)index(0)+=index(j);
cout<<index(0)<<","<<ia[0]<<endl;
int is[2]={1,2};
//int &ri2;//不能建立无任何实体的引用。必须要初始化!
//但是类的成员可以这样定义,不过一定要用构造函数的参数列表来初始化!
//详情请看我的例子:cppTest-6.0:类中特殊的成员的初始化.cpp
//int &a[5];//不能建立数组的引用!
//int &*p;//不能建立指向指针的引用!
//int &&ri;//不能建立引用的引用!
//可见,引用虽然具有指针的一部分功能,但是限制还是很多的!
}
void swap(int &n1,int &n2)//定义时表明形参为引用类型的
{
int temp=n1;
n1=n2;
n2=temp;
}
int &index(int i)//这里将函数返回值定义为引用类型,因为返回的是a[i],那么对函数的返回类型的修改就是对a[i]的修改了!
{
return ia[i];
}
cppTest-3.6:引用
最新推荐文章于 2013-12-30 14:49:54 发布