天天看點

C++帶預設形參的函數

先上代碼:

注意事項

1)C++調用函數時,參數是自由到左入棧的。是以,預設形參必須從右向左連續定義,并且在一個預設形參的右邊不能有非預設的形參。

int f(int a,float b=5.0,char c='.',int d=10);//正确

int f(int a=1,float b=5.0,char c='.',int d);//錯誤,d未定義

int f(int a=1,float b,char c='.',int d=10);//錯誤,b未定義

2)在調用函數時,如果省去了某個實參,那從這個實參開始到最右邊的實參都要省去,省去的參數和預設值對應。

int f(int a,float b=5.0,char c='.',int d=10);

f(8, , ,4)//錯誤

f(8)//正确

3)在函數聲明和函數定義時,預設形參不要重複定義,有函數聲明時,應該優先在聲明時定義,如果沒有函數聲明,則在函數定義時定義

4)在函數原型聲明時給出預設值時,形參名可以省略

int f(int ,float=5.0,char='.',int =sub(20,15));