運算子過載總結

2022-04-10 12:22:31 字數 1031 閱讀 8312

過載為普通函式(正常情況下都是友元函式)時,引數個數為運算子目數;

過載為成員函式時,引數個數為運算子目數減1.

一般情況下,單目運算子最好過載為類的成員函式;雙目運算子則最好過載為類的友元函式。

什麼情況下成員函式不能解決問題?比如complex c; c+5相當於呼叫c.operator+(5), 可以用;但是5+c就不行了。於是只能過載為普通函式(即友元函式)了。

=()、-> 只能過載為成員函式。

前置運算子是一元運算子,後置運算子是二元運算子(多乙個int引數,無實際意義,僅用於區分前後置)。

refref2

拓展:1. 箭頭操作符(成員訪問操作符)的過載   ref4

ref5

箭頭操作符是一元操作符!(雖然可能看起來像二元操作符)

過載箭頭操作符必須返回指向類型別的指標者返回定義了自己的箭頭操作符的類型別物件

以point->action為例,

如果 point 是乙個指標,那麼這就是乙個普通指標的呼叫;(因為只有物件才有成員函式啊,普通指標又不是什麼物件)

如果 point 是定義了 operator-> 操作符的類的乙個物件,則將遞迴應用該操作符。(就是這麼定義的)

詳細參考 ref4 裡的例子。

2. new、delete的過載    ref3

運算子過載總結

過載運算子 一,知識點總結 過載運算子函式可以對運算子做出新的解釋,即定義使用者所需要的各種操作。但運算子過載後,原有的基本語義不變,包括 不改變運算子的優先順序 不改變運算子的結合性 不改變運算子所需要的運算元 不能建立新的運算子 優先順序和結合性主要體現在過載運算子的使用上,而運算元的個數不但體...

c 運算子過載總結

目錄 1.一般運算子過載 2.關係運算子過載 3.邏輯運算子過載 4.單目運算子過載 5.自增減運算子過載 6.位運算子過載 7.賦值運算子過載 8.記憶體運算子過載 9.特殊運算子過載 10.總結c 的一大特性就是過載 overload 通過過載可以把功能相似的幾個函式合為乙個,使得程式更加簡潔 ...

C 運算子過載總結

c 的一大特性就是過載 overload 通過過載可以把功能相似的幾個函式合為乙個,使得程式更加簡潔 高效。在c 中不止函式可以過載,運算子也可以過載。由於一般資料型別間的運算子沒有過載的必要,所以運算子過載主要是物件導向之間的。1.一般運算子過載 在進行物件之間的運算時,程式會呼叫與運算子相對應的...