C++ 使用运算符重载的两个复数之和

C++ 使用运算符重载的两个复数之和,c++,constructor,C++,Constructor,我对运算符重载的概念非常陌生,我尝试使用运算符重载概念添加两个复数,并得到一个错误: 没有用于调用“Complex::Complex”Complex obj;的匹配函数 您没有默认构造函数。使用您的自定义设置: Complex operator+(const Complex &c) { return Complex{re_+c.re_, im_+c.im_}; } 及 您缺少默认构造函数。编译器不提供免费的默认构造函数吗?通常情况下是这样的。如果你自己定义一个构造函数的话就不会

我对运算符重载的概念非常陌生,我尝试使用运算符重载概念添加两个复数,并得到一个错误:

没有用于调用“Complex::Complex”Complex obj;的匹配函数


您没有默认构造函数。使用您的自定义设置:

Complex operator+(const Complex &c)
{
    return Complex{re_+c.re_, im_+c.im_};
}


您缺少默认构造函数。编译器不提供免费的默认构造函数吗?通常情况下是这样的。如果你自己定义一个构造函数的话就不会了。因为你声明了它而不是定义它。使用Complex{}或Complex=default;意思稍有不同,但在这里并不重要。@Ayush
Complex operator+(const Complex &c)
{
    return Complex{re_+c.re_, im_+c.im_};
}
Complex c3 = c1 + c2;