c 運算子過載

2021-10-01 04:06:08 字數 671 閱讀 7767

int

main()

int time:

:operator+

(time& a)

class time 

int operator+

(time& a);}

;

//我們知道對於基本資料型別和使用者自定義型別來說,如果我們需要判斷自定義型別相加相減相等這些那就用到運算子過載了,因為在我們自己定義的型別當中包含的基本資料型別很多,如果要判斷相等那麼直接用==編譯器可能就會蒙。

operator+ //這個就相當於函式名

mytime = mytime2 + mytime1; //這裡 mytime2就會去呼叫operator+(函式)

形參就相當於mytime1,所以 hour + a.hour 分別對應於mytime2物件的成員和mytime1物件的成員。

總結:運算子過載其實就相當於乙個函式,比如

time mytime;

time mytime1;

time mytime2;

mytime2=mytime1; //這裡系統會預設的呼叫過載運算子,如果系統沒有默 認的,那我們就要自己定義了,例如上面的兩個物件相加。

C 運算子過載 過載特殊運算子

賦值運算子用於同類物件間的相互賦值。賦值運算子只能被過載為類的非靜態成員函式,不能過載為友元函式和普通函式。對於使用者自定義的類而言,如果沒有過載賦值運算子,那麼c 編譯器會為該類提供乙個預設的過載賦值運算子成員函式。預設賦值運算子的工作方式是按位對拷,將等到右邊物件的非靜態成員拷貝給等號左邊的物件...

C 運算子過載賦值運算子

自定義類的賦值運算子過載函式的作用與內建賦值運算子的作用類似,但是要要注意的是,它與拷貝建構函式與析構函式一樣,要注意深拷貝淺拷貝的問題,在沒有深拷貝淺拷貝的情況下,如果沒有指定預設的賦值運算子過載函式,那麼系統將會自動提供乙個賦值運算子過載函式。賦值運算子過載函式的定義與其它運算子過載函式的定義是...

C 運算子過載轉換運算子

為什麼需要轉換運算子?大家知道對於內建型別的資料我們可以通過強制轉換符的使用來轉換資料,例如 int 2.1f 自定義類也是型別,那麼自定義類的物件在很多情況下也需要支援此操作,c 提供了轉換運算子過載函式 它使得自定義類物件的強轉換成為可能。轉換運算子的生命方式比較特別,方法如下 operator...