C++ 没有匹配的函数调用错误

C++ 没有匹配的函数调用错误,c++,operator-overloading,friend-function,C++,Operator Overloading,Friend Function,我正试图让我的权利负担过重; } 在.h文件中 friend std::ostream& operator<<(std::ostream& out, const Polynomial& rhs); friend std::ostream&operator将const添加到函数声明的末尾: void Polynomial::printPoly(Node* p, std::ostream &out) const { ... } 这个额外的co

我正试图让我的权利负担过重; } 在.h文件中

friend std::ostream& operator<<(std::ostream& out, const Polynomial& rhs);

friend std::ostream&operator将
const
添加到函数声明的末尾:

void Polynomial::printPoly(Node* p, std::ostream &out) const
{
    ...
}

这个额外的
const
告诉编译器,您不会在
printPoly
方法中修改
polymonent
对象。

啊,我刚刚在polymonent&rhs声明中放弃了const,它似乎很高兴。

这是我尝试的第一件事,它还在对我大喊大叫。我会再试一次的。@ScubaSteve对不起,我打错了。刚刚更新了我的帖子。。。再试一次。啊,是的,谢谢,它现在可以工作了。我比我更喜欢这个解决方案。实际上,您需要的是
const
,因为您没有修改函数中的对象。在适当的地方添加
const
限定符有助于避免不必要的副作用,并有助于编译器优化。
void Polynomial::printPoly(Node* p, std::ostream &out) const
{
    ...
}