使用引用形參的優(yōu)點(diǎn):
在向函數(shù)傳遞大對(duì)象時(shí),需要使用引用形參。雖然賦值實(shí)參對(duì)于內(nèi)置數(shù)據(jù)類(lèi)型的對(duì)象或者規(guī)模較小的類(lèi)類(lèi)型來(lái)說(shuō)沒(méi)有什么問(wèn)題,但是對(duì)于大部分的類(lèi)類(lèi)型或者大型數(shù)組,它的效率就比較低了。另外,某些類(lèi)類(lèi)型是無(wú)法復(fù)制的。使用引用形參,函數(shù)可以直接訪問(wèn)實(shí)參對(duì)象,而無(wú)須復(fù)制它。
示例:
bool isShorter(const string &str1,const string &str2)
{
return str1.size()<str2.size();
}
由于string對(duì)象可能非常的長(zhǎng),我們希望避免復(fù)制操作。
如果使用引用形參的唯一目的是避免復(fù)制形參,則應(yīng)將形參定義為const引用。
使用引用形參應(yīng)該注意的:
int incr(int &val)
{
return ++val;
}
void main(void)
{
short v1=1;
const int v2=10;
int v3=20;
incr(v1); //錯(cuò)誤,v1不是int
incr(v2); //錯(cuò)誤,v2是const
incr(v3); //正確
incr(10); //錯(cuò)誤
}
所以,調(diào)用非const類(lèi)型的引用形參,實(shí)參必須不是const類(lèi)型的,而且實(shí)參的類(lèi)型和形參的類(lèi)型應(yīng)當(dāng)一致。
| 只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。 | ||
|
||
|
相關(guān)文章:
|
||
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
Chat2DB
管理
|
||
|
|


