class complex{
private :
double real;
double img;
public:
complex(){real =0; img=0; }//定义构造函数
complex(double r,double i){real=r; img=i; }//构造函数重载
complex operator * (complex & c2);//声明重载运算符'*'函数
complex operator / (complex & c2);//声明重载运算符'/'函数
void display();//输出函数
};
//定义重载运算符'*'函数
complex complex :: operator * (complex &c2)
{
complex c;
c.real=real * c2.real -img * c2.img;
c.img=real * c2.img + c2.real * img;
return c;
}
//声明重载运算符'/'函数
complex complex :: operator /(complex &c2)
{
complex c;
c.real=(real*c2.real-img*c2.img) /(c2.real*c2.real+c2.img*c2.img);
c.img=(img*c2.real - real * c2.img) /(c2.real*c2.real+c2.img*c2.img);
return c;
}
void complex :: display()
{
cout<<"("<< real<<","<<img<<"i )"<< endl;
}
int main()
{
complex c1(2,4), c2(4,8), c3,c4;
c3=c1 * c2;
c4=c2 / c1;
cout<<"c1 * c2="; c3.display();
cout<<"c2 / c1="; c4.display();
return 0;
}