#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;
}
{
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;
}
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 时出错.
勿喷!
double CMyComplex::getReal(void) const
{
return m_Real;
}double CMyComplex::getImage(void) const
{
return m_Image;
}
{
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;
}
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
CMyComplex& CMyComplex::Plus(const CMyComplex &a)
{
m_Real+=a.getReal();
m_Image+=a.getImage();
return *this;
}