c 筆記 運算子過載總結

2021-10-07 01:36:56 字數 1162 閱讀 3753

為什麼要對運算子過載?

答:運算子可對一些基本的資料型別進行計算,若想讓物件之間實現計算(如實現複數相加),需要用到運算子過載。運算子過載實質是函式過載,是對乙個已有的函式賦予新的含義,實現新的功能。運算子過載可使程式易於編寫、閱讀和維護。

怎樣進行運算子的過載?

答:一般格式如下:

函式型別 operator 運算子名稱 (形參表)

例如:

complex operator

+(complex& c1,complex& c2)

;

過載運算子的規則?

答:①c++不允許使用者自己定義新的運算子,只能對已有的c++運算子進行過載。

②c++允許絕大部分的運算子過載,只有5個不可以過載:

成員訪問運算子(.)成員指標訪問運算子(*)、域運算子(::)、長度運算子(sizeof)、條件運算子(?:)

③過載不能改變運算子運算物件(即運算元)的個數。

④過載不能改變運算子的優先級別。

⑤過載不能改變運算子的結合性。

⑥過載運算子的函式不能有預設的引數。

⑦過載的運算子必須和使用者定義的自定義型別的物件一起使用,其引數至少應有乙個是類物件(或類物件的引用)。

⑧用於類物件的運算子一般必須過載,但「=」和「&」不必使用者過載。

為什麼流插入《和流提取運算子》不能定義為類的成員函式?

答:如果定義為類的成員函式,則隱含了this指標,即第乙個形參(運算子左側的運算元)是本類的物件,如下:

ostream& complex::

operator

<<

(ostream& cout)

此時輸出結果:data《遞增運算子前置和後置的過載有何不同?

答:b=a++是先把a值賦給b,a再加一

b=++a是a先加一,再把a值賦給b

後置過載相比於前置過載,需加乙個int佔位符。後置還需先把初值存起來,加一,然後返回記錄的初值。

什麼時候用值傳遞,什麼時候用引用傳遞?

答:當在函式內部定義了乙個臨時物件,這個臨時物件在函式結束的時候會被釋放,若用引用,找不到空間,就會出錯,故當存在臨時物件時,應用值傳遞。

除了上述情況,建議採用引用傳遞,可節省空間。

c 運算子過載總結

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

C 運算子過載總結

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

C 運算子過載總結

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