運算符重載

運算符重載

幾乎所有C中的運算符都可以重載,但是重載後的運算符在使用時會受到很大的限制
可重載和不可重載的運算符
1.自增(++)自減(–)運算符重載
重載後的++運算符,當我們看到++a時,編譯器內部會處理成operator++(a),看到a++時,編譯器內部會處理成operator++(a,int),其中int是佔位符。
在C++中前置++的實現代碼:
T& operator()
{
this->m_A++;
return *this;
}
其中返回值是引用可以不重新建立對象,返回的是本體。
後置++重載:
T operator()
{
T tmp;
tmp.m_A = this->m_A;
this->m_A++;
return tmp;
}
編寫代碼時,優先使用前置++,二者形式語義上是等價的,前置++效率會略微高一些,前置++少創建了一個臨時對象。
自減運算符重載和自增運算符同理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章