先上代碼:
注意事項
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));