C +类输出错误

| 所有代码均正常运行,没有错误,但命令
Setreal()
Setimag()
下面给出错误的输出。
#include <iostream>
using namespace std;

class complex
{ public:
     bool Readcomplex()
     { cout<<\"Enter the real part\"<<endl;
       cin>>real;
       cout<<\"Enter the imaginary part\"<<endl;
       cin>>imag;
       return true; };
     double Getreal()
     { return real;
            };
     double Getimag()
     { return imag;
            };
     double Add(complex c)
     { real=real+c.real;
       imag=imag+c.imag;
            };
     double Setimag(double im)
     { imag=im;
          };
     double Setreal(double re)
     { real=re;
          };
     void Multiply(complex c)
     { double x;
       x=real*c.real-imag*c.imag;
       imag=real*c.imag+imag*c.real;
       real=x;
          };
 private:
      double real;
      double imag;   
  };
 int main()
 { complex A,B,E,R;
 double C,D;
 A.Readcomplex();
 B.Readcomplex();
 cout<<\"The complex no. A is \"<<A.Getreal()<<\"+i\"<<A.Getimag()<<endl;
 cout<<\"The complex no. B is \"<<B.Getreal()<<\"+i\"<<B.Getimag()<<endl;
 A.Add(B); //Result stored in A.
 cout<<\"The complex no. A2 is \"<<A.Getreal()<<\"+i\"<<A.Getimag()<<endl;
 cout<<\"Set the real of A\"<<endl;
 cin>>C;
 cout<<\"and set the imaginary part\"<<endl;
 cin>>D;
 cout<<\"the new A is\"<<A.Setreal(C)<<\"+i\"<<A.Setimag(D)<<endl; //WRONG OUTPUT
 A.Multiply(B);
 cout<<\"The complex no. A is \"<<A.Getreal()<<\"+i\"<<A.Getimag()<<endl;
 system(\"pause\");
 return 0;}
错误的结果是
cout<<\"the new A is\"<<A.Setreal(C)<<\"+i\"<<A.Setimag(D)<<endl; //WRONG OUTPUT
,因为结果是
1.#QNAN+i1.#QNAN
,而不是像
C+iD
那样是C和D的值     
已邀请:
这些方法应具有return语句:
double Setimag(double im)
{
  return imag=im;
};
double Setreal(double re)
{
  return real=re;
};
    
double Setreal(double re)
 { 
   real=re;
 };
该函数应该返回
double
类型的内容,但不会...     

要回复问题请先登录注册