QT學習筆記7:C++函數默認參數


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語言並不支持缺省。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM