小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

c++ 中缺省參數(shù)

 水中麒麟 2013-09-14
l 【規(guī)則 8-3-1】參數(shù)缺省值只能出現(xiàn)在函數(shù)的聲明中,而不能出現(xiàn)在定義體中。
例如:
void Foo(int x=0, int y=0); // 正確,缺省值出現(xiàn)在函數(shù)的聲明中
void Foo(int x=0, int y=0) // 錯(cuò)誤,缺省值出現(xiàn)在函數(shù)的定義體中
{
}
為什么會(huì)這樣?我想是有兩個(gè)原因:一是函數(shù)的實(shí)現(xiàn)(定義)本來(lái)就與參數(shù)是否有
缺省值無(wú)關(guān),所以沒(méi)有必要讓缺省值出現(xiàn)在函數(shù)的定義體中。二是參數(shù)的缺省值可能會(huì)
改動(dòng),顯然修改函數(shù)的聲明比修改函數(shù)的定義要方便。
l 【規(guī)則 8-3-2】如果函數(shù)有多個(gè)參數(shù),參數(shù)只能從后向前挨個(gè)兒缺省,否則將導(dǎo)致
函數(shù)調(diào)用語(yǔ)句怪模怪樣。
正確的示例如下:
void Foo(int x, int y=0, int z=0);
高質(zhì)量C++/C 編程指南,v 1.0
2001 Page 64 of 101
錯(cuò)誤的示例如下:
void Foo(int x=0, int y, int z=0);
要注意,使用參數(shù)的缺省值并沒(méi)有賦予函數(shù)新的功能,僅僅是使書(shū)寫(xiě)變得簡(jiǎn)潔一些。
它可能會(huì)提高函數(shù)的易用性,但是也可能會(huì)降低函數(shù)的可理解性。所以我們只能適當(dāng)?shù)?/div>
使用參數(shù)的缺省值,要防止使用不當(dāng)產(chǎn)生負(fù)面效果。


示例8-3-2 中,不合理地使用參數(shù)
的缺省值將導(dǎo)致重載函數(shù)output 產(chǎn)生二義性。
#include <iostream.h>
void output( int x);
void output( int x, float y=0.0);
void output( int x)
{
cout << " output int " << x << endl ;
}
void output( int x, float y)
{
cout << " output int " << x << " and float " << y << endl ;
}
void main(void)
{
int x=1;
float y=0.5;
// output(x); // error! ambiguous call
output(x,y); // output int 1 and float 0.5
}
示例8-3-2 參數(shù)的缺省值將導(dǎo)致重載函數(shù)產(chǎn)生二義性

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多