跟過載函式一樣,c++也允許定義已有的運算子,通過運算子過載,像處理資料一樣使用它們。
11.1運算子過載
通過自加運算子,了解到只能對變數自加,而不能對物件自加。
11.2在成員函式中實現自加
新定義乙個成員函式,在成員函式內實現成員變數的自加。這種方法是可以,但是太low了。不是真正的物件自加。
11.3過載前置自加運算子
認識乙個新的關鍵字:operator。
用法:與運算子連用,成為運算過載函式,operator++()。這樣呼叫起來就比較優雅了。
為什麼可以這樣用:因為在c++中,所有的運算都是通過函式實現的,比如最簡單的加法也是同樣的道理,把引數傳遞到operator+(int, int)函式裡。
11.4建立臨時物件
在operator函式裡建立臨時物件,並返回。這樣,在物件自加之後就可以被賦值了。
11.5建立無名臨時物件
這是通過建構函式與operator函式配合使用,實現了成員變數的自加。但是這種方法會犧牲速度和記憶體空間,因此並不可取。
11.6取消建立臨時物件
利用上this指標。
11.7過載後置自加運算子
c 學習筆記 運算子過載
今天在看使用ceres擬合函式 的時候看到了運算子過載,由於c 當時沒學好現在也忘得差不多了,所以打算開始做乙個c 的學習筆記,看到哪寫到哪。今天看到的這段 如下 template bool operator const t const abc,t residual const 操作符過載的格式是 ...
C 學習筆記 運算子過載
自定義類可以過載運算子,大多數的運算子都是可以過載的,下表給出了那些運算子可以過載那些不可以過載。對於運算子的過載,我們需要明白運算子是如何呼叫的。非成員函式的運算子呼叫 d1 d2 表示式方式呼叫 operator d1,d2 等價的呼叫 成員函式的運算子呼叫方式 d1 d2 運算子呼叫 d1.o...
C 第4章 (運算子的過載)
運算子的過載實質是函式的過載 雙目運算子 過載為友元,單目運算子過載為 成員函式 一般格式 函式型別operator運算子名稱 形參表 operator是關鍵字 例過載 號 include using namespace std class complex complex complex compl...