#include<iostream>
using namespace std; 

class complex{
	int real,img;
   public:
     complex(int a=0,int b=0):real(a),img(b){} 
     complex operator+(const complex& in);
    friend complex operator+(complex& aa,const complex& bb);
	// complex& operator+(int in);
    void display(){cout<<real<<"+"<<img<<"i"<<endl;}
};


complex operator+(complex& aa,complex& bb){
	return complex(aa.real+bb.real,aa.img+bb.img);
}

complex complex::operator+(const complex& in){
	return complex(real+in.real,img+in.img);
}
//返回的是备份 


/*complex& complex::operator+(const complex& in)
{
	real=this->real+in.real;
	img=img+in.img;
	return *this;
}
*/返回引用 

int main(){
	complex a,b(2,3),c;
	int d=10;
	
	a.display();
	c=a+b;

	a.display();
	b.display(); 
}

单目运算符类型操作

class Clock{
    int second;
  public:
  	Clock(int in=0):second(in){}
  	Clock& operator++();
    Clock& operator++(int);

	void display const{cout<<"second="<<second<<endl;}	
};

Clock& Clock::operator++(){
	second++;
	return *this;
}
Clock& Clock::operator++(int){
	Clock old=*this;
	second++;
	return old;
}
int main(){
	Clock ck(10);ck1;
	ck.display();
	ck++;
	ck.display();
	ck1=ck++;
} 

后置运算,前置运算