c 運算子過載筆記

2022-09-02 06:18:10 字數 671 閱讀 4011

運算子過載的概念:給原有的運算子賦予新的功能;

比如:+ 不僅可以做算術運算也可以連線倆個字串

一元運算子:只與乙個運算元進行運算 比如 正負號

運算子過載的本質是:函式過載。

《與》符號只能通過友元函式來過載//因為其返回的物件是i/ostream中的

索引運算子只能通過成員函式進行過載,不能使用友元函式進行過載//因為其返回必須是this指標

兩種過載方式的比較:

注意事項:

除了類屬關係運算子」.「、成員指標運算子」.*「、作用域運算子」::「、sizeof運算子和三目運算子」?:「以外,c++中的所有運算子都可以過載。

過載運算子限制在c++語言中已有的運算子範圍內的允許過載的運算子之中,不能建立新的運算子。

運算子過載實質上是函式過載,因此編譯程式對運算子過載的選擇,遵循函式過載的選擇原則。

過載之後的運算子不能改變運算子的優先順序和結合性,也不能改變運算子運算元的個數及語法結構。

運算子過載不能改變該運算子用於內部型別物件的含義。它只能和使用者自定義型別的物件一起使用,或者用於使用者自定義型別的物件和內部型別的物件混合使用時。

運算子過載是針對新型別資料的實際需要對原有運算子進行的適當的改造,過載的功能應當與原有功能相類似,避免沒有目的地使用過載運算子。

c 運算子過載筆記

1.運算子過載的六個注意事項 1 過載運算子函式的引數個數,應該與參與這個運算子的運算物件數量一樣多,但是如果是成員函式,則引數數量要少乙個,因為第乙個引數是this。例如 includeusing namespace std class test int operator const test v...

運算子過載筆記

建立臨時物件 將自加後的物件賦給另乙個物件,我們需要建立乙個臨時物件,然後返回該物件 include using namespace std class num num int get const void set int x num operator private int n int main ...

運算子過載筆記

1.不能用友元過載的運算子 原因有2種說法 1 operator 時可以將友元函式宣告和類分開放,那麼在這個operator 函式之前的 遇到 號就是預設的 操作符,在operator 之後的 用的就是這個過載的operator 造成了混亂.2 作為成員函式過載時,呼叫物件就是第乙個引數,比如 作為...