/**
*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:引用
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.