操作数返回不同的对象

时间:2013-11-08 01:58:37

标签: c++ object operators

所以我正在制作一个有两个单项和多项式的程序。基本上,多项式只是一系列单项式。我需要创建一个operator +来添加两个单项式并返回一个多项式。到目前为止,我已将Polynomial声明为单项式中的朋友类,并且在Polynomial operator+(const Monomial& a, const Monomial& b);类中的朋友Polynomial,但它似乎无效。

friend Polynomial operator+(const Polynomial& a, const Monomial& b);

friend Polynomial operator+(const Monomial& a, const Polynomial& b);

两者都很好,所以我很困惑这个问题所在。

1 个答案:

答案 0 :(得分:0)

这是一个简洁编译的快速示例程序,当然Monomial和Polynomial的内容可以根据自己的喜好进行更改。

#include <vector>
class Monomial
{
public:
    Monomial() : A(0), x(0) {}
    int A;
    int x;
};
class Polynomial
{
public:
    Polynomial() {}
    Polynomial(const Monomial& a, const Monomial& b) {
        monomials.push_back(a);
        monomials.push_back(b);
    }
    std::vector<Monomial> monomials;
};
Polynomial operator+(const Monomial& a, const Monomial& b)
{
    return Polynomial(a, b);
}
int main(int argc, char *argv[])
{
    Monomial a;
    Monomial b;
    Polynomial poly = a + b;
    return 0;
}