#include<iostream>class CMyComplex
{
private:
double m_Real;
double m_Image;
public:
    CMyComplex();
~CMyComplex(){};
CMyComplex(double);
CMyComplex(double,double);
    double getReal() const;
double getImage() const; CMyComplex  &Plus(const CMyComplex &);
};
CMyComplex Minus(const CMyComplex &,CMyComplex &);
CMyComplex::CMyComplex(void)
:m_Real(0),m_Image(0)
{}
CMyComplex::CMyComplex(double a)
:m_Real(a),m_Image(0)
{}
CMyComplex::CMyComplex(double a,double b)
:m_Real(a),m_Image(b)
{}
CMyComplex::getReal(void) const
{
return m_Real;
}
CMyComplex::getImage(void) const
{
return m_Image;
}
CMyComplex::CMyComplex  &Plus(const CMyComplex &a)
{
    m_Real+=a.getReal();
m_Image+=a.getImage();
}
Minus(const CMyComplex &a,CMyComplex &b)
{
   m_Real=a.getReal()-b.getReal();
   m_Image=a.getImage()-b.getImage();
}
int main()
{
CMyComplex a(5),b(-2,-5),c(0,-12);
CMyComplex d(),e();
d=a.Plus(b);
e=Minus(a,c);
return 0;
}

解决方案 »

  1.   

    c:\users\dong\desktop\ss.cpp(29) : error C2556: 'int __thiscall CMyComplex::getReal(void) const' : overloaded function differs only by return type from 'double __thiscall CMyComplex::getReal(void) const'
            c:\users\dong\desktop\ss.cpp(13) : see declaration of 'getReal'
    c:\users\dong\desktop\ss.cpp(29) : error C2371: 'getReal' : redefinition; different basic types
            c:\users\dong\desktop\ss.cpp(13) : see declaration of 'getReal'
    c:\users\dong\desktop\ss.cpp(33) : error C2556: 'int __thiscall CMyComplex::getImage(void) const' : overloaded function differs only by return type from 'double __thiscall CMyComplex::getImage(void) const'
            c:\users\dong\desktop\ss.cpp(14) : see declaration of 'getImage'
    c:\users\dong\desktop\ss.cpp(33) : error C2371: 'getImage' : redefinition; different basic types
            c:\users\dong\desktop\ss.cpp(14) : see declaration of 'getImage'
    c:\users\dong\desktop\ss.cpp(36) : error C2143: syntax error : missing ';' before '&'
    c:\users\dong\desktop\ss.cpp(36) : error C2350: 'CMyComplex::CMyComplex::CMyComplex' is not a static member
    c:\users\dong\desktop\ss.cpp(37) : error C2501: 'Plus' : missing storage-class or type specifiers
    c:\users\dong\desktop\ss.cpp(38) : error C2065: 'm_Real' : undeclared identifier
    c:\users\dong\desktop\ss.cpp(38) : error C2264: 'getReal' : error in function definition or declaration; function not called
    c:\users\dong\desktop\ss.cpp(39) : error C2065: 'm_Image' : undeclared identifier
    c:\users\dong\desktop\ss.cpp(39) : error C2264: 'getImage' : error in function definition or declaration; function not called
    c:\users\dong\desktop\ss.cpp(40) : warning C4508: 'Plus' : function should return a value; 'void' return type assumed
    c:\users\dong\desktop\ss.cpp(42) : error C2556: 'int __cdecl Minus(const class CMyComplex &,class CMyComplex &)' : overloaded function differs only by return type from 'class CMyComplex __cdecl Minus(const class CMyComplex &,class CMyComplex &)'
            c:\users\dong\desktop\ss.cpp(18) : see declaration of 'Minus'
    c:\users\dong\desktop\ss.cpp(42) : error C2371: 'Minus' : redefinition; different basic types
            c:\users\dong\desktop\ss.cpp(18) : see declaration of 'Minus'
    c:\users\dong\desktop\ss.cpp(43) : error C2264: 'getReal' : error in function definition or declaration; function not called
    c:\users\dong\desktop\ss.cpp(43) : error C2264: 'getReal' : error in function definition or declaration; function not called
    c:\users\dong\desktop\ss.cpp(44) : error C2264: 'getImage' : error in function definition or declaration; function not called
    c:\users\dong\desktop\ss.cpp(44) : error C2264: 'getImage' : error in function definition or declaration; function not called
    c:\users\dong\desktop\ss.cpp(50) : error C2659: '=' : overloaded function as left operand
    c:\users\dong\desktop\ss.cpp(51) : error C2659: '=' : overloaded function as left operand
    执行 cl.exe 时出错.
    勿喷!
      

  2.   

    如:
    double CMyComplex::getReal(void) const
    {
    return m_Real;
    }double CMyComplex::getImage(void) const
    {
    return m_Image;
    }
      

  3.   

    CMyComplex& CMyComplex::Plus(CMyComplex &a)
    {
    m_Real+=a.getReal();
    m_Image+=a.getImage();
    return a;
    }CMyComplex Minus(const CMyComplex &a,CMyComplex &b)
    {
    CMyComplex cmplx;
    cmplx.m_Real=a.getReal()-b.getReal();
    cmplx.m_Image=a.getImage()-b.getImage();
    return cmplx;
    }
      

  4.   

    overloaded member function 'class CMyComplex &(class CMyComplex &)' not found in 'CMyComplex'
      

  5.   

    还有一点错误,求解啊!
    F:\ss.cpp(45) : error C2106: '=' : left operand must be l-value
    F:\ss.cpp(46) : error C2106: '=' : left operand must be l-value
    F:\ss.cpp(53) : error C2659: '=' : overloaded function as left operand
    F:\ss.cpp(54) : error C2659: '=' : overloaded function as left operand
      

  6.   

    // 这个有问题:
    CMyComplex& CMyComplex::Plus(const CMyComplex &a)
    {
    m_Real+=a.getReal();
    m_Image+=a.getImage();
    return *this;
    }