首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个类里面含有运算符重载函数,那类的构造函数是不是有特殊要求?解决办法

2012-02-14 
一个类里面含有运算符重载函数,那类的构造函数是不是有特殊要求???class Complex{public: Complex(int r,i

一个类里面含有运算符重载函数,那类的构造函数是不是有特殊要求???
class Complex
{
public: Complex(int r,int i):real(r),image(i){}
Complex operator+(Complex &c2);
Complex operator-(Complex &c2);
Complex operator*(Complex &c2);
Complex operator/(Complex &c2);
void display();
private:
double real;
double image;
};
如上面的类,含有运算符重载函数,构造函数是参数表形式的,但是编译时候就会报错说没有合适的构造函数可用,
但在原构造函数上面加上一行
  Complex(){real=0;image=0;}
编译就能成功,这是为什么,
请高手解释下~谢谢

[解决办法]
你的主程序中可能使用用了如下 Complex c;这样的形式,是需要一个缺省构造函数的
[解决办法]
你提供构造函数的话,就没有那个无参的构造函数了
而你又用到了,所以得提供一个无参的构造函数
[解决办法]
和重载无关,是你自己定义方式的问题,
使用了无参数构造函数,但是你并没有提供

热点排行