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