//实现复数的前置++和后置++(利用全局运算符重载)
#include <iostream>
using namespace std;
class Com
{
public:
int a, b;
Com(int i = 0,int j = 0) :a(i), b(j) {};
friend Com& operator++(Com& a);//前置++
friend Com operator++(Com& a,int);//后置++
void show();
};
Com& operator++(Com& a)
{
a.a++;
a.b++;
return a;
}
Com operator++(Com& a, int)
{
Com old;
old.a = a.a;
old.b = a.b;
a.a++;
a.b++;
return old;
}
void Com::show()
{
cout << a << "+" << b << "i" << endl;
}
int main()
{
Com a(3, 5);
a.show();
Com b = ++a;
a.show();
b.show();
Com c = a++;
c.show();
a.show();
return 0;
}