函數的缺省參數與函數的重載

缺省函數

缺省函數是聲明或者定義函數時爲函數的參數指定一個默認值,在調用該函數的時候如果沒有指定實參就採用該默認值,不然就使用指定的實參

全缺省函數

void funtest(int P1 = 1, int p2 =2)
{ }
int main()
{

//int a = 10;
//int b = 20;
funtest(a,b);
//如果不給a,b賦值,那麼a = 1,b = 2;賦值的話便爲賦值的值

}

半缺省函數

void funtest(int p1, int p2 =2)
{ }

在使用缺省參數的時候必須注意

1.缺省參數的賦值必須時從右到左,就是帶缺省值的參數必須在參數列表的最後面
void funtest(int a = 1,int b=2){}

void funtest(int a ,int b = 2){}
以上兩種情況是正確的

void funtest(int a = 1; int b)
這種情況是不允許的

2.缺省參數不能同時出現在函數的聲明和定義中,

3.缺省值必須是常量或者全局變量

函數重載

函數重載是函數的一種特殊情況,C++允許在同一作用域中聲明幾個功能類似的同名函數,這些同名函數的參數列表必須不同,一般用來處理一些功能類似但是數據類型不同的問題,比如加法運算,但是參數可以爲int ,可以爲 long,可以爲flout

整形的運算

int Add(const int _number1, const int _number2)
{

cout<<_FUNCTION__<<":"<<__LINE__<<endl;
return (_number1+_number2);

}

cout<<dd(10,20)<<endl;

長整形的運算

long Add(const long _number1, const long _number2)
{

cout<<__FUNCTION__<<":"<<__LINE__<<endl;
return(_number1+_number2);

}

cout<<Add(100L,200L)<<endl;

這兩個函數名稱都是Add,在C語言中運行時會提示函數的重定義。但是同時存在於
(C++)代碼中運行並不會出現出現錯誤,這就與函數在C++中修飾方式有關了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章