打印

[讨论] 一个关于C++重载构造函数的小问题

一个关于C++重载构造函数的小问题

这是一个重载运算符+号的代码,用以实现复数相加,但是我不明白程序的第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 编辑 ]
本帖最近评分记录
  • flyli 金币 -1 没有括代码 2007-4-4 23:49

TOP

complex(double r,double i){real=r;imag=i;}// 为什么要重载构造函数???

可以在实例化complex类时,通过不同的构造函数完成不同的初始化~
学了6年了,还是初学者。。。。。。。。
原来如此,怎么没想到那?呵呵,谢谢啦!

TOP

Processed in 0.053118 second(s), 6 queries, Gzip enabled