1. 程式人生 > >多型性——運算子過載(一)

多型性——運算子過載(一)

  1. 多型性是指不同的物件收到相同的資訊是,產生不同的行為。C++中可以用同一個函式名呼叫不同內容的函式,這些函式執行不同但又類似的操作,這樣就可以用同一個函式名呼叫不同內容的函式。
  2. 一個源程式經過編譯,連線成為可執行檔案的過程就是把可執行程式碼的聯編。執行之前的聯編就是靜態聯編,在執行時完成的成為動態聯編。
  3. 靜態聯編是指系統在編譯時就決定如何實現這一動作,效率高是靜態聯編的主要優點;動態聯編是指系統在執行動態實現某一動作,提供了更好的靈活性,問題抽象性和程式易維護性
  4. 靜態的多型性稱為編譯時多型性,也稱靜態多型性,需要通過函式過載或者模板實現;動態多型性稱為執行時的多型性,一般通過虛擬函式進行實現。
  5. 運算子過載是通過運算子過載函式來實現的。可以是在類外定義的普通函式,也可以是類的成員函式或友元函式。
  6. 類外定義的普通函式
    這裡寫圖片描述

  7. 運算子過載的規定
    (1)大部分的運算子可以過載,成員訪問符”.”,成員指標訪問運算子”.“,作用域運算子“::”,條件運算子”?:”,長度運算子“sizeof”.*
    (2)過載不改變操作物件的個數,過載後事雙目的仍舊是。
    (3)過載不改變運算子原來的優先順序。
    (4)運算子過載引數至少有一個是類物件,也就是過載引數的不能全部是C++的標準型別。
    (5)運算子過載函式可以是普通函式也可以是成員函式或者是類的友元函式。
    (6)類物件的運算子可以過載,但是賦值運算子”=“除外,

    不必使用者過載。