我有一个包含此类定义的头文件:
class visitorlist {
struct Node {
visitor vis;
Node* next;
};
Node* head;
Node* tail;
public:
visitorlist() { //written here to have it as inline.
head = NULL;
tail= NULL;
}
~visitorlist();
int lengthvl();
void add(const visitor);
void popandexit();
void transfer(visitorlist);
void deletenode(Node*);
int refiprio();
int refioffno();
int refifloor();
visitor reravi();
bool isempty();
Node* rehead();
};
并且在包含上述标题的源文件中我有:
Node* visitorlist::rehead() {
return head;
}
这导致error: 'Node' does not name a type
。
Node不在函数范围内吗?
答案 0 :(得分:2)
使用
visitorlist::Node* visitorlist::rehead() {
return head;
}
或者,从C ++ 11开始:
auto visitorlist::rehead() -> Node* {
return head;
}