构造函数和赋值运算符存在问题。这是我的代码:
class Class
{
private:
double number1;
double number2;
public:
Class(double, double);
Class& operator=(const Class& n);
}
Class::Class(double n1 = 0.0, double n2 = 0.0)
{
this->number1 = n1;
this->number2 = n2;
}
Class& operator=(const Class& n)
{
this->number1 = n.number1;
this->number2 = n.number2;
return *this;
}
int main()
{
Class n1(2., 3.), n2(7., -1.), n3();
n2 = n1; // no problem
n3 = n1; // problem
return 0;
}
你能请我加油,为什么主要的第二次任务有问题?
非常感谢
编辑:发生以下错误:
[Error] assignment of function 'Complex cislo2()'
[Error] cannot convert 'Complex' to 'Complex()' in assignment
答案 0 :(得分:2)
amon's comment是正确的。
简单解释一下,在您提供的示例代码中:
Class n3();
定义不带参数的函数,并按值返回Class
的实例。
这是C ++语法中的一个怪癖。
要解决此错误,请在初始化不带任何构造函数参数的变量时省略空括号对。