1. 程式人生 > 實用技巧 >C++之函式

C++之函式

  • 函式的預設引數

    //如果我們自己傳入資料,就用自己的資料,沒有就用預設值
    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);
    }
    
  • 函式過載

    條件:

    1. 在同一個作用域下,比如全域性域
    2. 函式引數型別要不同,引數個數要不同,或者引數順序不同
    3. 函式名稱相同
    4. 函式的返回值不能作為函式過載的條件
    void func();
    void func(int a);
    void func(int a,double b);
    void func(double b,int a);
    
  • 函式過載的注意事項

  1. 引用作為過載條件

    void func(int &a);
    void func(const int &a);
    
    func(10);//呼叫第二個
    int a = 10;
    func(a);//呼叫第一個,因為非const型別
    
    
  2. 函式過載遇到預設引數

    //會有二義性
    void fun2(int a,int b = 20)
    void fun2(int a);
    
    //呼叫
    fun2(10);//將會兩個都可以,有歧義