using namespace std;
class Complex{
double real,imag;
public:
Complex(double re=1,double im=0);
Complex operator+(const Complex& c);
Complex operator-(const Complex& c);
Complex operator*(const Complex& c);
Complex operator/(const Complex& c);
void display();
};
Complex::Complex(double re,double im){
real=re;
imag=im;
}
Complex Complex::operator+(const Complex& c){
Complex t;
t.real=real+c.real;
t.imag=imag+c.imag;
return t;
}
Complex Complex::operator-(const Complex& c){
Complex t;
t.real=real-c.real;
t.imag=imag-c.imag;
return t;
}
Complex Complex::operator*(const Complex &c){
double r,i;
r=real*c.real+imag*c.imag;
i=imag*c.real+real*c.imag;
return Complex(r,i);
}
Complex Complex::operator/(const Complex &c){
double r,i,d;
r=real*c.real+imag*c.imag;
i=imag*c.real+real*c.imag;
d=c.real*c.real+c.imag*c.imag;
if(d>0)
return Complex(r/d,i/d);
else{
cout <<"Error!";
exit(1);
}
}
void Complex::display(){
cout <<"(" <<real <<"," <<imag <<")\n";
}
int main(){
Complex c1(5.5,3.3), c2(6.5, 2.1),c3;
cout <<"c1: "; c1.display();
cout <<"c2: "; c2.display();
c3=c1+c2;
cout <<"c1+c2: "; c3.display();
c3=c1-c2;
cout <<"c1-c2: "; c3.display();
c3=c1*c2;
cout <<"c1*c2: "; c3.display();
c3=c1/c2;
cout <<"c1/c2: "; c3.display();
return 0;
}