對於帶參數列表的函數,必須從右向左添加默認值
對於帶參數列表的函數,必須從右向左添加默認值,也就是說,要爲某個參數設置默認值,則必須爲它右邊的所有參數提供默認值。範例:
int fun1(int n, int m = 4, int j = 5); //正確
int fun2(int n, int m = 6, int j); //錯誤
int fun3(int n = 1, int m = 6, int j = 3); //正確
默認參數不能在聲明和定義中同時出現
錯誤使用範例:
聲明:
void fun4(int n = 10);
定義:
void fun4(int n = 10)
{
...;
}
正確使用範例:
聲明:
void fun4(int n = 10);
定義:
void fun4(int n)
{
...;
}
或者
聲明:
void fun4(int n);
定義:
void fun4(int n = 10)
{
...;
}
帶默認參數的函數的聲明、定義及使用
函數可以先聲明後定義再使用;也可以不聲明只定義後使用。
一般情況下我們選擇將默認參數放在函數定義中,這是我們設計函數的初衷,以及保證程序的可讀性。
在實際調用過程中,實參按從左到右的順序被賦給相應的形參,而不能跳過任何參數。範例:
val = fun1(2); //等價於 fun1(2,4,5)
val = fun1(1,8); //等價於 fun1(1,8,5)
val = fun1(8,7,6); //等價於 fun1(8,7,6)
val = fun1(3, ,8); //這種調用方式有誤,有參數被跳過。
————————————————
版權聲明:本文爲CSDN博主「碼農講習所」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/lsky380/article/details/102976485