C 學習筆記 第11章 運算子法過載

2021-07-10 18:47:38 字數 584 閱讀 8858

跟過載函式一樣,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...