#ifndef COMPLEX_HPP
#define COMPLEX_HPP

#include<iostream>
#include<cmath>
using namespace std;
class Complex{
    private:
        double real,imag;
    public:
    Complex (double real0=0,double imag0=0):real(real0),imag(imag0){}
    double get_real()const{return real;}
    double get_imag()const{return imag;}    
    void show()const;
    Complex(const Complex &p);
    friend Complex add(Complex a,Complex b);
     void add(const Complex &p);
    friend bool is_equal(const Complex &a,const Complex &b);
    friend double abs(const Complex &p);
    
};
void Complex::show()const{
    if(imag!=0) 
    cout<<real<<imag<<"i";
    else
    cout<<real;
}
Complex::Complex(const Complex &p){
    real=p.real;
    imag=p.imag;
}
void Complex::add(const Complex &p){
real=real+p.real;
imag=imag+p.imag;
}
Complex add(Complex a,Complex b){
    a.real=a.real+b.real;
    a.imag=a.imag+b.imag;
    return a;
}
bool is_equal(const Complex &a,const Complex &b){
    if(a.real==b.real&&a.imag==b.imag)
    return true;
    else
    return false;
}
double abs(const Complex &p){
    return sqrt    (pow(p.real,2)+pow(p.imag,2));
}

#endif