帮忙看一下这个c++程序

来源:百度知道 编辑:UC知道 时间:2024/05/28 19:01:54
#include<iostream>
using namespace std;
class Complex{
public:
Complex(){real=0;imag=0;}
Complex(double r,double i):real(r),imag(i){}
friend Complex operator+(Complex &,Complex &);
Complex(double r){real=r;imag=0;}
void display();
private:
double real,imag;

};
void Complex::display(){
cout<<"("<<real;
if(imag>=0)cout<<"+";
cout<<imag<<"i)"<<endl;

}
Complex operator+(Complex &c1,Complex &c2){
return Complex(c1.real+c2.real,c1.imag+c2.imag);
}
int main(){
Complex c1(2,6),c2(4,-7),c3;
c3=c1+c2;
cout<<"c3=";
c3.display();
c3=2.5+c1;
cout<<"c3=";
c3.display();
c3=c1+1.6;
cout<<"c3=";
c3.display();
return 0;

}
这个程序错哪了??我怎么也找不出来 高手莫笑!!
请说明一下理由 谢谢了!
operator

#include<iostream.h>
class Complex
{
public:
Complex();
Complex(double r);
Complex(double r,double i):real(r),imag(i){}
void display();
friend Complex operator+(Complex &c1,Complex c2);
private:
double real,imag;
};
Complex::Complex()
{
real=0;imag=0;}
Complex::Complex(double r)
{real=r;imag=0;}
void Complex::display()
{
cout<<"("<<real;
if(imag>=0)cout<<"+";
cout<<imag<<"i)"<<endl;
}

Complex operator+(Complex &c1,Complex c2)
{
return Complex((c1.real+c2.real), (c1.imag+c2.imag));
}
int main()
{
Complex c1(2,6),c2(4,-7),c3(0,0);
Complex a(2.5),b(1.6);
c3=c1+c2;
cout<<"c3=";
c3.display();
c3=a+c1;
cout<<"c3=";
c3.display();
c3=c1+b;
cout