您的位置:首页 > 其它

重载_,“+, -, --, ++”运算符

2016-11-26 19:28 197 查看
#include<iostream>
using namespace std;
//以+和++为例,-和--同理
class Complex{
private:
int fro;
int fai;
public:
Complex (){};
Complex(int a,int b):fro(a),fai(b){ };
Complex operator+ (const Complex& x) const {return Complex(fro+x.fro,fai+x.fai);};
Complex & operator++ ();
Complex operator++ (int);
void display(){cout<<fro<<" "<<fai<<endl;};
};
// 前置++,“加完再用”,所以返回的是引用
Complex& Complex::  operator++ () {
fro++;
fai++;
return *this;
}
// 后置++,“用完再加”,所以返回类。
// 事实上,不是“用完在加”,而是自加运算后时候原来的值,从下面代码可看出。
Complex Complex:: operator++ (int){
Complex old; // 保存原来的对象
old=*this;
++(*this);  // 这里可以用一般方法替换。而如果不是一般情况的自加运算,那么最好调用重置后的++运算符,这样做的原因是可以减少重复的代码。
return old;
}

// test_main
int main(){
Complex c1(1,2);
Complex c2(2,3);
Complex c=c1+c2;
c.display();
c++;
c.display();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: