这是一个重载运算符+号的代码,用以实现复数相加,但是我不明白程序的第6排为什么要重载构造函数?先谢过啦!
复制内容到剪贴板
代码:
#include<iostream>
using namespace std;
class complex
{public:
complex(){real=0;imag=0;} //构造函数
complex(double r,double i){real=r;imag=i;}// 为什么要重载构造函数???
complex operator + (complex &c2);
void display();
private:
double real;
double imag;
};
complex complex::operator + (complex &c2)
{
complex c;
c.real=real+c2.real;
c.imag=imag+c2.imag;
return c;
}
void complex::display()
{
cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
int main()
{
complex c1(3,4),c2(5,10),c3;
c3=c1+c2;
cout<<"c1+c2=";c3.display();
return 0;
}为了方便大家阅读请将代码括起来,谢谢合作哈~ --flyli
[
本帖最后由 flyli 于 2007-4-4 23:49 编辑 ]