0

我有以下类声明(我试图删除尽可能多的多余代码):

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: error: 'Node' does not name a type”。

我将不胜感激在确定问题方面的任何帮助。

4

1 回答 1

4

在编译器遇到之前,List::它不知道Node您正在谈论的是List. 将定义更改为:

List::Node * List::findNode(unsigned int index) {
    return new Node;
}

函数内部的“裸”Node很好,因为到那时编译器知道该函数是 List 的成员。

于 2013-11-11T23:43:43.387 回答