所以我正在制作一个有两个单项和多项式的程序。基本上,多项式只是一系列单项式。我需要创建一个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);
两者都很好,所以我很困惑这个问题所在。
答案 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;
}