C 學習之四 過載C 操作符

2021-06-02 01:48:53 字數 803 閱讀 3569

為什麼要過載操作符

1. 讓類表現得像內建資料型別一樣

2. 能夠對程式中的表現有更多的控制

操作符過載的限制

1. 不能增加新的操作符。

2. 有些操作符不能過載

3. 不能改變操作符的元數

4. 不能改變操作符的優先順序

5. 不能重新定義內建型別的操作符

操作符過載中的選擇

a. 方法或全域性函式

存在三種不同型別的操作符

1. 必須是方法的操作符。

類之外這些操作是無意義的。

2. 必須是全域性函式的操作符。

需要讓操作符左邊的運算元是另外一種型別的變數時。

3. 二者都可以的操作符。

b. 選擇引數型別

c. 選擇返回型別

應該適當地編寫過載操作符,使之與內建資料型別相應的操作符有相同的表現,返回相同的型別。

d. 選擇行為

不應該過載的操作符

取位址操作符&、二元布林操作符&&和||、逗號操作符,。

上面知識如下表:

9 過載操作符

include includeusing namespace std class num void print 也可以在內部提供乙個 號操作符過載,但和全域性 號過載如果呼叫方法一致,就只能存在乙個 num operator num other 過載 是修改自身,不能返回新物件,所以要返回自身引用 ...

C 運算子過載 11 過載 和 操作符

運算子 用於流輸出,而運算子 用於流輸出。在開始過載這些操作符之前,必須注意下面的事項 1 cout是輸出類的物件,而cin是輸入類的物件 2 這些操作符必須過載為全域性函式。如果想要讓它們可以訪問私有成員,則必須定義為友元。為何必須過載為全域性函式?如果操作符過載為乙個成員函式,則它必須是物件的成...

C 與C 對比學習 函式 四 過載函式匹配

我們知道過載函式中可以形參個數相同,但型別不同.而c 中雙允許做比較靈活的隱式型別轉換.所以呼叫函式時怎麼精確的匹配到要想的函式就是乙個問題.此時一般分三個步驟去匹配 1 先把所有過載函式找出來.把形參個數相同的先選出來.形參個數不同的就直接剔除掉.這相當於是海選,比如人家美女找老公,先看第一感覺,...