链接重载+运算符

时间:2017-11-03 21:47:07

标签: c++ class object math overloading

我一直在写一个多项式类,我正在为它重载运算符。我设法(我认为)成功地重载了+ =运算符,现在我创建了一个外部函数,使用+ =进行加法,就像许多来源中的建议一样。它有效但我不能出于某种原因将它们链起来 当我尝试添加像这样的多项式时

poly a, b, c, d;
a=b+c+d;

我收到错误:没有匹配函数来调用&poly; poly :: poly(const poly)'

我的+ =功能的主体并不是那么重要,但它是什么样的:

poly& operator+= (const poly& a){
        //implemented +=
        return *this;

    }

我的添加功能(课外)看起来像这样:

const poly operator+ (poly a, const poly & b){
    a+= b;
    return a;
}

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

您的poly类缺少poly(const poly&)形式的副本构造函数。请注意,如果您的poly(poly&)已经不够用了。您需要一个以const poly&作为参数的复制构造函数。