#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++;
}
后置运算,前置运算