C++之函式
阿新 • • 發佈:2020-10-22
-
函式的預設引數
//如果我們自己傳入資料,就用自己的資料,沒有就用預設值 int func(int a,int b = 20, int c = 30) { return a+b+c; } //1.如果某個位置引數有預設值,則這個位置往後(從左向右)都必須有預設值 void fun1(int a ,int b = 10,int c = 10) //2.函式宣告和函式定義只能有一個有預設引數 int fun2(int a,int b); int fun2(int a = 10,int b = 10) { return a+b; } int main() { cout << func(10,40) << endl;//b輸出為40,其他按規則 }
-
佔位引數
//呼叫引數必須填補,且呼叫引數也可以有預設引數 //fun(資料型別) void func(int a,int,int = 10); int main() { func(10,10); }
-
函式過載
條件:
- 在同一個作用域下,比如全域性域
- 函式引數型別要不同,引數個數要不同,或者引數順序不同
- 函式名稱相同
- 函式的返回值不能作為函式過載的條件
void func(); void func(int a); void func(int a,double b); void func(double b,int a);
-
函式過載的注意事項
-
引用作為過載條件
void func(int &a); void func(const int &a); func(10);//呼叫第二個 int a = 10; func(a);//呼叫第一個,因為非const型別
-
函式過載遇到預設引數
//會有二義性 void fun2(int a,int b = 20) void fun2(int a); //呼叫 fun2(10);//將會兩個都可以,有歧義