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

一个类里面含有运算符重载函数,那类的构造函数是不是有特殊要求???
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;这样的形式,是需要一个缺省构造函数的
------解决方案--------------------
你提供构造函数的话,就没有那个无参的构造函数了
而你又用到了,所以得提供一个无参的构造函数
------解决方案--------------------
和重载无关,是你自己定义方式的问题,
使用了无参数构造函数,但是你并没有提供