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...