//13. 定义一个复数类,并用运算符重载方法实现复数的加减乘除运算,并给出main()对该类进行应用。
#include"iostream"
using namespace std;
class complex1
{
private:
float real,iamg;
public:
complex1(float x=0,float y=0):real(x),iamg(y){}
complex1 operator+(complex1 c);
complex1 operator-(complex1 c);
complex1 operator*(complex1 c);
complex1 operator/(complex1 c);
void print();
};
int main()
{
complex1 c1(1,2),c2(3,4),c3;
c3=c1+c2;
c3.print();
c3=c2-c1;
c3.print();
c3=c1*c2;
c3.print();
c3=c1/c2;
c3.print();
return 0;
}
void complex1::print()
{
cout<<real;
if(iamg>0)
cout<<"+";
cout<<iamg<<"i"<<endl;
}
complex1 complex1::operator+(complex1 c)
{
complex1 c4;
c4.real=real+c.real;
c4.iamg=iamg+c.iamg;
return c4;
}
complex1 complex1::operator-(complex1 c)
{
complex1 c4;
c4.real=real-c.real;
c4.iamg=iamg-c.iamg;
return c4;
}
complex1 complex1::operator*(complex1 c)
{
complex1 c4;
c4.real=real*c.real-iamg*c.iamg;
c4.iamg=real*c.iamg+c.real*iamg;
return c4;
}
complex1 complex1::operator/(complex1 c)
{
complex1 c4;
float mm;
mm=c.real*c.real+c.iamg*c.iamg;
c4.real=(float)(real*c.real+iamg*c.iamg)/mm;
c4.iamg=(float)(c.real*iamg-real*c.iamg)/mm;
return c4;
}