1. 程式人生 > >C++函式的預設引數

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沒有預設