簡體   English   中英

鏈表上的Ostream重載運算符

[英]Ostream overloading operator on a linked list

我在鏈表中​​有一個多項式實現,想執行std::ostream重載操作,但是它給我一個錯誤,即no match for 'operator<<' in 'std::cout << p5'

那是我的實現,但是當我通過cout << p5對其進行測試時,出現了上述錯誤。

更新:頭文件:

struct term{
    double coef;
    unsigned deg;
    struct term * next;
};
class Polynomial {
public:
    constructors etc
    overloading functions
   friend ostream& operator << (ostream& out,const term& object);
}

然后在其他文件poly.cpp我有:

 ostream & operator << (ostream& out, const Polynomial object){
        term* q = object.getptr();
        if (object.getptr() == NULL)
            out << "( )";
        else
            while(q != NULL)
            {
                out << q->coef << "x^" << q->deg << " ";
                q = q->next;
            }
        return out;
    }

在main.cpp多項式p5中,然后添加了一些術語和cout << p5但出現錯誤。

我認為是您的聲明引起了問題:

friend ostream & operator << (ostream & out, const term & object);

ostream & operator << (ostream & out, const Polynomial & object);

這些不匹配。 一種是使用term對象,而另一種是使用Polynomial對象。 我假設您希望此函數使用term對象,因為該函數使用特定於struct term 因此,更改后者以接受term對象:

ostream & operator << (ostream & out, const term & object);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM