C 基礎 運算子過載

2021-07-15 04:39:21 字數 946 閱讀 3545

運算子過載

返回值型別 類名::operator過載運算子(引數列表)

#include using namespce std;

class complex;

ostream& operator<<(ostream &out, const complex &c); //過載輸出流

class complex

~complex()

{}public:

complex add(complex &c)

public:

//過載運算子+

complex operator+(const comple &c)

private:

int m_real;

int m_imag;

};ostream& operator<<(ostream &out,const complex &c)

後置「++」格式為:

返回型別  類名::operator++(int)

後置「++」中的引數int僅用作區分,並無實際意義,可以給乙個變數名,也可以不給變數名。

4.c++中只有極少數的運算子不允許過載。 

"?:"   ".和.*" "::"  "sizeof";

過載前置++和後置++:

int& operator++()      //++a

int operator++(int)    //a++

由上我們可以看出前置++比後置++效率高很多;

過載運算子有以下幾種限制

1.不可臆造新的運算子

2.不能改變運算子原有的優先順序、結合性和語法結構,不能改變運算子運算元的個數

3.運算子過載不宜使用過多

4.過載運算子含義必須清楚,不能有二義性

C 基礎 運算子過載

一 運算子過載 1.類是使用者自定義的資料型別,使用運算子過載可以i實現如下邏輯 1 物件1 物件2 物件3,如描述複數的類,描述字串的類。2 提高程式的可讀性。2.過載賦值運算子 1 如果乙個類沒有提供賦值運算函式,則預設提供乙個。2 如果乙個類提供了拷貝建構函式,那麼也要提供乙個過載的賦值運算函...

C 基礎 運算子過載(01)

一方面,在c 中,運算子過載 operator overloading 允許把標準運算子 如 等 應用於自定義資料型別的物件。這樣可以直觀自然地看出自定義資料型別間的運算,並且提高程式的可讀性。另一方面,運算子過載僅僅是一種語法上的方便。預設運算子的本質就是函式的呼叫,而運算子過載就是另一種呼叫。同...

C 基礎(4) 運算子過載

二.使用過載運算子 c 預定義中的運算子的操作物件只侷限於基本的內建資料型別,但是對於我們自定義的型別 類 是沒有辦法操作的。但是大多時候我們需要對我們定義的型別進行類似的運算,這個時候就需要我們對這麼運算子進行重新定義,賦予其新的功能,以滿足自身的需求。運算子過載的實質就是函式過載或函式多型。運算...