1. 程式人生 > 實用技巧 >C++學習筆記(一)運算子的過載

C++學習筆記(一)運算子的過載

運算子過載的需求

  • C++預定義的運算子,只能用於基本的資料型別的運算:整形、實型、字元型、邏輯型...
  • 在數學上,兩個負數可以直接進行+、-等運算。但在C++中,直接將+或-用於複數物件是不允許的
  • 有時會希望,讓物件也能通過運算子進行運算, 這樣程式碼更簡潔,容易理解
  • 例如:
    • complex_a和complex_b是兩個複數物件;
      求兩個複數的和,希望能直接寫 complex_a + complex_b

運算子過載

  • 運算子過載,就是對已有的運算子(C++中預定義的運算子)賦予多重的含義,使同一運算子作用於不同型別的資料時導致不同型別的行為
  • 運算子過載的目的是:擴充套件C++中提供的運算子的適用範圍,使之能作用於物件
  • 同一個運算子, 對不同的型別的運算元,所發生的行為不同

運算子過載的形式

  • 運算子過載的是指是函式過載
  • 可以過載為普通函式, 也可以過載為成員函式
  • 把含運算子的表示式轉換成對運算子函式的呼叫
  • 把運算子的運算元轉換成運算子函式的引數
  • 運算子被多次過載時, 根據實參的型別決定呼叫哪個運算子函式
    返回值引數 operator 運算子(形參表){
        ....
    }