在类中对+,-,*,/,=,+=的运算符的重载与调用。
#include<iostream>
using namespace std;
class complex{
private:
double Real,Image;
public:
complex(double R=0,double I= 0){///构造函数
Real =R;Image=I;
}
complex(const complex&p){//拷贝构造
Real=p.Real;Image=p.Image;
}
void Print(){//输出内容
cout<<"Real = "<<Real<<"\t"<<"Image= "<<Image<<endl;
}
//运算符的重载
complex operator+(complex c);
complex operator+(double c);
complex operator-(complex c);
complex operator*(complex c);
complex operator/(complex c);
complex operator=(complex c);
complex operator+=(complex c);
};
complex complex::operator+(complex c){//加法
complex temp(Real+c.Real,Image+c.Image);
return temp;
}
complex complex:: operator+(double c){//加double
complex temp(Real+c,Image);
return temp;
}
complex complex:: operator-(complex c){//减法
complex temp(Real-c.Real,Image-c.Image);
return temp;
}
complex complex:: operator*(complex c){//乘法
complex temp(Real*c.Real,Image*c.Image);
return temp;
}
complex complex:: operator/(complex c){//除法
complex temp(Real/c.Real,Image/c.Image);
return temp;
}
complex complex:: operator=(complex c){//赋值
complex temp;
temp.Real=c.Real;temp.Image=c.Image; Real=temp.Real;Image=temp.Image;
return temp;
}
complex complex:: operator+=(complex c){//复合
complex temp;
temp.Real =Real+c.Real;temp.Image=Image+c.Image;
temp.Real;Image= temp.Image;
return temp;
}
int main(){
complex c1(2,3),c2(1,2),c3;
double b=8;
c3=c1+c2;c3.Print();
c3=c1+b;c3.Print();
c3=c1-c2;c3.Print();
c3=c1*c2;c3.Print();
c3=c1/c2;c3.Print();
c2=c1;c2.Print();
c1+=c2;c1.Print();
system("pause");
}