运算符重载

运算符重载

几乎所有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;
}
编写代码时,优先使用前置++,二者形式语义上是等价的,前置++效率会略微高一些,前置++少创建了一个临时对象。
自减运算符重载和自增运算符同理。

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