我有以下课程:
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;
...
变量定义后立即<。>
问题是我收到错误“标识符节点未定义”
我试图声明操作符并在类之外实现它,这没有帮助。
有没有人对此有任何想法? 提前感谢任何可以提供帮助的人:)
答案 0 :(得分:5)
node
是一个内部类,这意味着你必须限定它的类型:
mypipe::node* curr = p.head -> next;