我有以下类声明(我试图删除尽可能多的代码):
class List {
public:
struct Node {
int value;
};
Node * findNode(unsigned int) {
return new Node;
}
};
这没有错误。但是,只要我在类之外定义函数“findNode”,我就会收到错误;这是代码:
class List {
public:
struct Node {
int value;
};
Node * findNode(unsigned int);
};
Node * List::findNode(unsigned int index) {
return new Node;
}
现在,在运行代码时,我收到一条错误消息“LinkedList.cpp:9:1:错误:'Node'没有命名类型”。
我很感激在确定问题方面提供任何帮助。
答案 0 :(得分:4)
在编译器遇到List::
之前,它不知道您所谈论的Node
是List
的成员。将定义更改为:
List::Node * List::findNode(unsigned int index) {
return new Node;
}
函数内部的“裸”Node
很好,因为到那时编译器知道函数是List的成员。