簡體   English   中英

C ++中的operator << C ++中的重載

[英]operator<< overload in C++ for a class in class

我有以下課程:

class mypipe {
    class node {
        public:
            char ch;
            node* next;

            node(){...}
            node(char c){..}
    } ;      
public:
    unsigned int size;
    node* head;

而且我需要重載operator <<,以按原樣打印mypipe。

然后,我正在嘗試編寫以下內容:

friend ostream& operator<< (ostream& stream, mypipe p)  {
     node* curr = p.head -> next;
...

在變量定義之后。
問題是我得到一個錯誤“標識符節點未定義”。
我試圖聲明運算符並在類之外實現它,這沒有幫助。

有人對此有任何想法嗎?
預先感謝任何可以幫助的人:)

node是一個內部類,這意味着您必須限定其類型:

mypipe::node* curr = p.head -> next;

暫無
暫無

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

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