-2

示例代码:

文件:LinkedStack.h

#include "NodeType.h"

#ifndef LINKEDSTACK_H
#define LINKEDSTACK_H

template <class ItemType>
class LinkedStack {
public:
    NodeType topPtr;
};

文件:NodeType.h

#ifndef NODETYPE_H
#define NODETYPE_H

template <class ItemType>
class NodeType {
public:

    ItemType info;
    NodeType *nextElement;

};

#endif  /* NODETYPE_H */

文件:main.cpp

#include "NodeType.h"
#include "LinkedStack.h"

using namespace std;

int main(int argc, char** argv) {

    return 0;
}

当我运行它时,我不断得到:

LinkedStack.h:20:错误:“NodeType”未命名类型

然而 NodeType 已经被定义和包含了?

4

1 回答 1

4

NodeType是一个template。改成:

NodeType<ItemType> topPtr;
于 2012-11-29T21:39:15.270 回答