Ref as function param
常引用常引用聲明方式:const 類型標(biāo)識(shí)符 &引用名=目標(biāo)變量名;
用這種方式聲明的引用,不能通過(guò)引用對(duì)目標(biāo)變量的值進(jìn)行修改,從而使引用的目標(biāo)成為
const,達(dá)到了引用的安全性。
【例3】:
int a ;
const int &ra=a;
ra=1; //錯(cuò)誤
a=1; //正確
這不光是讓代碼更健壯,也有些其它方面的需要。
【例4】:假設(shè)有如下函數(shù)聲明:
string foo( );
void bar(string & s);
那么下面的表達(dá)式將是非法的:
bar(foo( ));
bar("hello world");
原因在于foo( )和"hello world"串都會(huì)產(chǎn)生一個(gè)臨時(shí)對(duì)象,而在C++中,這些臨時(shí)對(duì)象都是
const 類型的。因此上面的表達(dá)式就是試圖將一個(gè)const 類型的對(duì)象轉(zhuǎn)換為非const 類型,
這是非法的。
引用型參數(shù)應(yīng)該在能被定義為const 的情況下,盡量定義為const 。
posted on 2008-10-23 12:15 Xiaobo Sun 閱讀(157) 評(píng)論(0) 編輯 收藏 所屬分類: C++