//部分代码, 仅供参考#include <iostream.h>
class complex
{
public:
complex(double r=0,double i=0)
{
real=r;
imag=i;
}
complex &operator +(complex &c);
complex operator -(complex &c);
complex operator *(complex &c);
friend complex operator /(complex &c1,complex &c2);
friend int operator ==(complex &c1,complex &c2);
friend int operator !=(complex &c1,complex &c2);
//friend complex operator++(complex &c);
complex operator++();
void disp()
{
cout<<real<<"+"<<imag<<"i"<<endl;
}
private:
double real;
double imag;
};
complex &complex::operator +(complex &c)
{
return complex(real+c.real,imag+c.imag);
}
complex complex::operator -(complex &c)
{
return complex(real-c.real,imag-c.imag);
}
complex complex::operator *(complex &c)
{
return complex(real*c.real-imag*c.imag,real*c.imag+imag*c.real);
}
complex operator /(complex &c1,complex &c2)
{
return complex((c1.real*c2.real+c1.imag*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag),(c1.imag*c2.real-c1.real*c2.imag)/(c2.real*c2.real+c2.imag*c2.imag));
}
int operator ==(complex &c1,complex &c2)
{
return ((c1.real==c2.real)&&(c1.imag==c2.imag));
}
int operator !=(complex &c1,complex &c2)
{
return !((c1.real==c2.real)&&(c1.imag==c2.imag));
}
/*complex operator++(complex &c)
{
++c.imag;
++c.real;
return c;
}*/
complex complex::operator++()
{
imag++;
real++;
return *this;
}
void main()
{
complex c1(2,3),c2(3.2,4.6);
complex c3(2,3);
(c1+c2).disp();
(c1-c2).disp();
(c1*c2).disp();
(c1/c2).disp();
if(c1==c3)
cout<<"Equal"<<endl;
if(c1!=c2)
cout<<"Not Equal"<<endl;
(++c1).disp();
}