本帖最后由 VisualEleven 于 2012-10-19 20:59:38 编辑

解决方案 »

  1.   

    Complex类没有&成员函数,Complex&a怎么用?
      

  2.   

    "Complex&a,&b" -> Complex &a,&b
      

  3.   

    friend Complex operator+(Complex&a,&b);
    第一次看到函数参数这样写,难道不应该写成
    friend Complex operator+(Complex &a, Complex& b);
      

  4.   


    ///////////////////////////////////////////////////////////////
    #include<iostream.h>//using namespace std;class Complex
    {
    double real;
    double imag;
    public:
    Complex (double r=0.0,double i=0.0);
    void print();
    //
    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);
    };  
    Complex::Complex(double r,double i)
    {
    real=r;
    imag=i;
    }Complex operator+ (Complex a,Complex b)
    {
    return Complex(a.real+b.real,a.imag+b.imag);
    }Complex operator- (Complex a,Complex b)
    {
    return Complex(a.real-b.real,a.imag-b.imag);
    }Complex operator* (Complex a,Complex b)
    {
    return Complex(a.real*b.real,a.imag*b.imag);
    }Complex operator/ (Complex a,Complex b)
    {
    Complex temp;
    double t;
    t=1/(b.real*b.real+b.imag*b.imag);
    temp.real=(a.real*a.real+a.imag*b.imag)*t;
    temp.imag=(b.real*a.imag-a.real*b.imag)*t;
    return temp;
    }void Complex::print()
    {
    cout<<real;
    if(imag>0)
    cout<<"+";
    if(imag!=0)
    cout<<'i'<< imag << endl;
    }int main()
    {
    Complex A1(2.3,4.6),A2(3.6,2.8),A3,A4,A5,A6;
    A3=A1+A2;
    A4=A1-A2;
    A5=A1*A2;
    A6=A1/A6;
    A1.print();
    A2.print();
    A3.print();
    A4.print();
    A5.print();
    A6.print(); return 0;
    }
    注意:
    #include<iostream.h>
    //using namespace std;