关于complex类的定义:

#include<iostream>
using namespace std;
class complex
{
    public:
        complex()
        {real=0;im=0;}
        complex(float a,float b):real(a),im(b){}
        friend complex operator+(complex& a,complex& b);
        friend complex operator-(complex& a,complex& b);
        friend complex operator*(complex& a,complex& b);
        friend complex operator/(complex& a,complex& b);
        friend istream& operator>> (istream&,complex&);
        friend ostream& operator<< (ostream& output,complex& a);
        void display();

    private:
        float real;
        float im;
};

void complex::display()
{

    if(real<0.1&&real>-0.1)
        real = 0;
    if(im<0.1&&im>-0.1)
        im=0;   
    if(im==0)
        {   cout.setf(ios::fixed);
            cout.precision(1);
            cout<<real;}
    else if(real==0.0&&im!=0)
        {
            cout.setf(ios::fixed);
            cout.precision(1);
            cout<<im<<'i';
        }
    else
        {
            if(im>0)
            {cout.setf(ios::fixed);
            cout.precision(1);

            cout<<real<<'+'<<im<<'i';}
            else
            {
            cout.setf(ios::fixed);
            cout.precision(1);

            cout<<real<<im<<'i';
            }   
        }
}
complex operator+(complex& a,complex& b)
{
    complex ans;
    ans.real = a.real+b.real;
    ans.im = a.im+b.im; 
    return ans;
}
complex operator-(complex& a,complex& b)
{
    complex ans;
    ans.real = a.real-b.real;
    ans.im = a.im-b.im; 
    return ans;
}
complex operator*(complex& a,complex& b)
{
    complex ans;
    ans.real = a.real*b.real-a.im*b.im;
    ans.im = a.real*b.im+a.im*b.real;   
    return ans;
}
complex operator/(complex& a,complex& b)
{
    complex ans;
    ans.real = (a.real*b.real+a.im*b.im)/(b.real*b.real+b.im*b.im);
    ans.im =  (a.im*b.real-a.real*b.im)/(b.real*b.real+b.im*b.im);
    return ans;
}
istream& operator>> (istream& input,complex& a)
{
    input>>a.real>>a.im;
    return input;
}
ostream& operator<< (ostream& output,complex& a)
{
    output<<'('<<a.real<<','<<a.im<<')';
    return output;
}
int main()
{

    complex a,b,ans1,ans2,ans3,ans4;
    cin>>a>>b;
    ans1=a+b;
    ans2=a-b;
    ans3=a*b;
    ans4=a/b;

    return 0;
}