C++中允許為函數提供默認參數,又名缺省參數。
使用默認參數時的注意事項:
① 有函數聲明(原型)時,默認參數可以放在函數聲明或者定義中,但只能放在二者之一
double sqrt(double f = 1.0); //函數聲明 double sqrt(double f) //函數定義 { // .... }
② 沒有函數(原型)時,默認參數在函數定義時指定.
//沒有 函數聲明
double sqrt(double f = 1.0) //函數定義
③ 在具有多個參數的函數中指定默認值時,默認參數都必須出現在不默認參數的右邊,一旦某個參數開始指定默認值,它右邊的所有參數都必須指定默認值.
int f (int i1, int i2 = 2, int i3 = 3); // 正確
int g (int i1, int i2 = 2, int i3); // 錯誤, i3未指定默認值
int h (int i1 = 1, int i2, int i3 = 3); // 錯誤, i2未指定默認值
④ 在調用具有默認參數的函數時, 若某個實參默認,其右邊的所有實參都應該默認。
//例如, 一個函數聲明如下
int f(int i1 = 1, int i2 =2, int i3 = 3); //調用函數 f()
f(); //正確, i1=1, i2=2, i3=3
f(3); //正確, i1=3, i2=2, i3=3
f(2, 3); //正確, i1=2, i2=3, i3=3
f(4, 5, 6); //正確, i1=4, i2=5, i3=6
f(, 2, 3); //錯誤, i1默認,其右邊的i2和i3沒有默認
-------------------------------------------------------------------------------------------------------------------------------------------------------------
參考資料:
<<C++面向對象程序設計(第二版)>>
http://www.cnblogs.com/graphics/archive/2010/07/15/1778291.html