operator< & lt;在c++中为类中的类重载



我有以下类:

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

,我需要重载操作符<<来打印现在的mypipe。

然后,我试着写以下内容:

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

紧随变量定义之后。
问题是,我得到一个错误"标识符节点是未定义的"。
我试图声明操作符并在类之外实现它,但没有帮助。

有人有什么想法吗?
提前感谢任何可以帮助的人:)

node是一个内部类,这意味着您必须限定它的类型:

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

最新更新