C 中的運算子過載

2021-07-10 08:21:49 字數 793 閱讀 3217

運算子過載的實質是函式過載。

使用 過載的運算子 的過程解析:

1.把運算表示式轉化為對運算子函式的呼叫,把運算物件轉化為運算子函式的實參。

2.根據實參的型別確定需要呼叫的目標函式。(這個動作在編譯過程完成)

運算子過載的規則:

1.只能過載已有的運算子,其中有5個不能過載。

2.不能改變原操作符的操作物件個數,並且其中至少要有乙個操作物件是自定義型別。

運算子過載的形式:

1.運算子過載為成員函式。(推薦)

返回值型別 operator 運算子名稱(const 形參表)

eg:表示式

oprd1 b oprd2 

就相當於函式呼叫

oprd1.operator b(oprd2). 

過載為成員函式時,總時隱含了乙個引數,該引數是

this

指標。this

指標是指向呼叫該成員函式物件的指標。

2.運算子過載為友元函式。

friend 返回值型別 operator 運算子名稱(const 形參表)

解析:返回值型別就是結果型別,即自定義型別。operator

是定義運算子過載函式的關鍵字;運算子是過載的運算子名稱。

當運算子過載為類的成員函式時,函式的引數個數比原來的操作個數要少乙個;當過載為類的友元函式時,引數個數與原運算元個數相同。

注意:僅過載了賦值運算子還不能進行bign x = 100;操作,原因請參閱另一篇文章:c++中給類初始化與賦值的區別

參考**:c++運算子過載講解與經典例項

C 中運算子過載

運算子過載使得使用者自定義的資料以一種更簡潔的方式工作。比如int x,y 可以為y x y 而 my c1,c2 如果想使得兩個自定義的物件相加,以前只能調 用函式計算它們的和。而現在只要定義了運算子過載就能實現c1 c1 c2.所謂過載,就是重新賦予新的含義。函式過載就是對乙個已有的函式賦予新的...

C 中運算子過載

運算子過載可以寫在類的內部,也可以寫成全域性函式形式,其中運算子 在過載時必須宣告為類的成員函式 而運算子 sizeof 不能被過載 演算法運算子的過載不會改變運算子原有的優先順序。例子 include include include using namespace std class comple...

C 中的運算子過載(一) 運算子過載的概念

概述 運算子過載,就是對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別。運算子過載 operator overloading 只是一種 語法上的方便 也就是它只是另一種函式呼叫的方式,只是為了方便我們使用,運算子只能運算內建的資料型別,對於自定義的資料型別不能運算,所以我們可以過載...