C++帶預設引數值的函式
阿新 • • 發佈:2021-02-01
一、可以預先設定預設的引數值,呼叫時如果給出實參,則採用實參值,否則使用預先設定的預設引數值。
int add(int x = 5, int y = 6)
{
return x + y;
}
int main()
{
add(10, 20); // 10+20
add(10); // 10+6
add(); // 5+6
}
二、預設引數值的說明次序
- 有預設引數的形參必須列在形參列表的最右,即預設引數值的右面不能無預設值的引數;
- 呼叫是實參與形參的結合次序是從左向右。
- 例:
int add(int x, int y = 5, int z = 6); //正確
int add(int x = 1, int y = 5, int z); //錯誤
int add(int x = 1, int y, int z = 6); //錯誤
三、預設引數值與函式的呼叫位置
- 如果一個函式有原型宣告,且原型宣告在函式定義之前,則預設引數值應在函式原型宣告中給出;
- 如果只有函式的定義,或函式定義在前,則預設引數值可以在函式定義中給出。
- 例:
int add(int x = 5, int y = 6);
//原型宣告在前
int main()
{
add();
}
int add(int x, int y)
{
//此處不能再指定預設值
return x + y;
}
int add(int x = 5 , int y = 6)
{
//定義在呼叫之前
return x + y;
}
int main()
{
add();
}
所以如果函式有預設引數,其宣告和實現都寫上預設引數值就好了。