赶上
之所以要有无参构造函数 是因为编译器在建立新对象时的地方会自动插入对构造函数的调用代码 这也是C++程序“例行公事”的必然行为 比如你这个代码例子中的
complex temp;complex total1,total2;定义这些变量时就会用到无参构造 因为你定义的时候便没有参数传递 这也是为什么你说去掉无参构造就出错了的原因 但是你如果去掉无参构造后改成将这两行代码改成 complex temp(参数1,参数2);complex total1(参数1,参数2),total2(参数1,参数2);就能通过编译了 但是这样或许就会和你所要的函数功能实现出现矛盾 所以最好每个类针对实际都加上无参构造函数 这也算是个好的习惯吧