c operator過載 使用

2021-07-12 01:05:36 字數 1324 閱讀 1982

operator是c++的關鍵字,它和運算子一起使用,表示乙個運算子函式,理解時應將operator=整體上視為乙個函式名。

這是c++擴充套件運算子功能的方法,雖然樣子古怪,但也可以理解:一方面要使運算子的使用方法與其原來一致,另一方面擴充套件其功能只能通過函式的方式(c++中,「功能」都是由函式實現的)。

一、為什麼使用操作符過載?

對於系統的所有操作符,一般情況下,只支援基本資料型別和標準庫中提供的class,對於使用者自己定義的class,如果想支援基本操作,比如比較大小,判斷是否相等,等等,則需要使用者自己來定義關於這個操作符的具體實現。比如,判斷兩個人是否一樣大,我們預設的規則是按照其年齡來比較,所以,在設計person 這個class的時候,我們需要考慮操作符==,而且,根據剛才的分析,比較的依據應該是age。那麼為什麼叫過載呢?這是因為,在編譯器實現的時候,已經為我們提供了這個操作符的基本資料型別實現版本,但是現在他的運算元變成了使用者定義的資料型別class,所以,需要使用者自己來提供該引數版本的實現。

一些例子

#include

#include

using

namespace

std;

class child

;class person

operator child();

inline

bool

operator == (const person &ps) const;

inline person operator + (const person &ps) const;

inline person operator () (const

int _age, const

int _length) const;

inline person operator (const

int _age) const;

};person::operator child()

bool person::operator == (const person &ps) const

return

false;

}person person::operator + (const person &ps) const

person person::operator () (const

int _age, const

int _length) const

person person::operator (const

int _age) const

int main(int argc, char *argv)

C operator(過載操作符)

operator 是c 的乙個關鍵字,它和運算子 如 一起使用,表示乙個運算子過載函式,在理解時可將operator和運算子 如operator 視為乙個函式名。使用operator過載運算子,是c 擴充套件運算子功能的方法。使用operator擴充套件運算子功能的原因如下 使過載後的運算子的使用方...

C operator 簡單使用

類可以使用建構函式將其他型別轉化為此類的物件,比如 my class a my class int i 將int型轉化為my class類的乙個物件。同樣,也可以使用類的轉換函式將類的物件轉化為其他的型別。類的轉換函式應當滿足以下的幾個條件 include using namespace std c...

C operator關鍵字(過載操作符)

operator是c 的關鍵字,它和運算子一起使用,表示乙個運算子函式,理解時應將operator 整體上視為乙個函式名。這是c 擴充套件運算子功能的方法,雖然樣子古怪,但也可以理解 一方面要使運算子的使用方法與其原來一致,另一方面擴充套件其功能只能通過函式的方式 c 中,功能 都是由函式實現的 1...