C++過載


如果建立兩個或多個成員(函式)具有相同的名稱,但引數的數量或型別不同,則稱為C++過載。 在C++中,我們可以過載:

  • 方法
  • 建構函式
  • 索引屬性

這是因為這些成員只有引數。

C++中的過載型別有:

  • 函式過載
  • 運算子過載

C++函式過載

在C++中,具有兩個或更多個具有相同名稱但引數不同的函式稱為函式過載

函式過載的優點是它增加了程式的可讀性,不需要為同一個函式操作功能使用不同的名稱。

C++函式過載範例

下面來看看看函式過載的簡單例子,修改了add()方法的引數數量。

#include <iostream>  
using namespace std;  
class Cal {  
    public:  
static int add(int a,int b){    
        return a + b;    
    }    
static int add(int a, int b, int c)    
    {    
        return a + b + c;    
    }    
};   
int main(void) {  
    Cal C;  
    cout<<C.add(10, 20)<<endl;    
    cout<<C.add(12, 20, 23);   
   return 0;  
}

執行上面程式碼,得到以下結果 -

30
55

C++操作符過載

操作符過載用於過載或重新定義C++中可用的大多數操作符。 它用於對使用者定義資料型別執行操作。

運算子過載的優點是對同一運算元執行不同的操作。

C++操作符過載範例

下面來看看看在C++中運算子過載的簡單例子。 在本範例中,定義了void operator ++ ()運算子函式(在Test類內部)。

#include <iostream>  
using namespace std;  
class Test  
{  
   private:  
      int num;  
   public:  
       Test(): num(8){}  
       void operator ++()   
       {   
          num = num+2;   
       }  
       void Print() {   
           cout<<"The Count is: "<<num;   
       }  
};  
int main()  
{  
    Test tt;  
    ++tt;  // calling of a function "void operator ++()"  
    tt.Print();  
    return 0;  
}

執行上面程式碼,得到以下結果 -

The Count is: 10