求助几个问题,希望不会浪费你太多时间^-^
sftk 2004-06-13 01:46:54 1,关于复数加法重载的
class Complex
{
double re,im;
public:
Complex():re(0),im(0){}
Complex(double r):re(r),im(0){}
Complex(double r,double i):re(r),im(i){}
Complex& operator+(Complex a,Complex b);//这里有问题
double show_re(){return re;}
double show_im(){return im;}
};
inline Complex& Complex::operator+(Complex a)
{
re=a.re+b.re;
im=a.im+b.im;
return *this;
}
void computer_Complex()
{
Complex a(4,5);
Complex b(2,9);
Complex c=a+b;
cout<<endl<<"复数(4+5i)+复数(2+9i)="<<c.show_re<<"+"<<c.show_im<<"i";
}
错误提示: error C2804: binary 'operator +' has too many parameters
这是什么意思呢?
我又改了下,但运行有错
class Complex
{
double re,im;
public:
Complex():re(0),im(0){}
Complex(double r):re(r),im(0){}
Complex(double r,double i):re(r),im(i){}
Complex& operator+(Complex);//这里改动了
double show_re(){return re;}
double show_im(){return im;}
};
inline Complex& Complex::operator+(Complex a)
{
re+=a.re;
im+=a.im;
return *this;
}
void computer_Complex()
{
Complex a(4,5);
Complex b(2,9);
Complex c=a+b;
cout<<endl<<"复数(4+5i)+复数(2+9i)="<<c.show_re<<"+"<<c.show_im<<"i";
}
运行时得不到正确结果,总是1+1i,怎么会事??
2,下面是关于输入流的,我忘记该如何写了
void Judge_Max()
{
double max,next;
cout<<"请输入一串数字,用空格隔开:";
max=0;
cin>>next;
while(next!='\n') //这里有错
{
if(next>max)
max=next;
cin>>next;
}
cout<<endl<<"最大的数字为"<<max;
}
我的想法是让用户输入一些数字,用空格隔开,判断出最大的数,希望各位解答下