注册 登录
编程论坛 C++教室

求助(关于运算符的重载)

祸莫大于轻敌 发布于 2012-11-16 19:33, 413 次点击
#include <iostream>
using namespace std;
class Complex
{public:
     Complex( ){real=0;imag=0;}
     Complex(double r,double i){real=r;imag=i;}
     Complex(int z){zs=z;}
     Complex operator+(Complex &c2);
     void out( );
 private:
     int zs;
     double real;
     double imag;
};
Complex Complex::operator+(Complex &c2)
{Complex c;
 c.real=real+c2.real;
 c.imag=imag+c2.imag;
 c.real=zs+c2.real;
 c.imag=c2.imag;
 return c;
}
void Complex::out( )
{
    cout <<"("<<real<<","<<imag<<"i)"<<endl;
}
int main( )
{
    Complex c1(3,1),c2(5,-10),c3(0,12),c4,c5,c6,z=4;
     c4=c1+c2;
    c5=c1+c3;
    c6=z+c3;
    cout <<"c4=";c4.out( );
    cout <<"c6=";c6.out( );
    return 0;
}
帮忙看一下这个程序那里有问题。。
2 回复
#2
zhuanjia02012-11-16 23:37
程序代码:
Complex Complex::operator+(Complex &c2)
{Complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
c.real=zs+c2.real;//推测这里有问题,加上判断试试看
c.imag=c2.imag;//推测这里有问题,加上判断试试看
return c;//返回了c.real=zs+c2.real;c.imag=c2.imag;
}
#3
祸莫大于轻敌2012-11-19 12:37
回复 2楼 zhuanjia0
谢了,能改一下吗???????????
1