Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 创建模板类后是否不是类、命名空间或枚举?_C++ - Fatal编程技术网

C++ 创建模板类后是否不是类、命名空间或枚举?

C++ 创建模板类后是否不是类、命名空间或枚举?,c++,C++,我正在尝试模板化一些类(LinkedListNode和LinkedList),这样 template <class T> class LinkedListNode{ public: T data; LinkedListNode *next; LinkedListNode(); }; }) 编译时,我会遇到奇怪的错误: ./LinkedList.h:38:3:错误:未知类型名称“LinkedListNode”;你是说 “链接列表

我正在尝试模板化一些类(LinkedListNode和LinkedList),这样

template <class T>
class LinkedListNode{
    public:
        T data;
        LinkedListNode *next;
        LinkedListNode();
};
})

编译时,我会遇到奇怪的错误:

./LinkedList.h:38:3:错误:未知类型名称“LinkedListNode”;你是说 “链接列表”? LinkedListNode*头; ^~~~~~~~~~~~~~ 链表 /LinkedList.h:13:7:注意:此处声明了“LinkedList” 类链接列表{ ^ ./LinkedList.h:40:3:错误:未知类型名称“LinkedListNode”;您的意思是 “链接列表”? LinkedListNode*当前; ^~~~~~~~~~~~~~ 链表 /LinkedList.h:13:7:注意:此处声明了“LinkedList” 类链接列表{ ^ LinkedList.cpp:7:1:错误:“LinkedListNode”不是类、命名空间或名称空间 列举 LinkedListNode::LinkedListNode(){ ^ ./LinkedList.h:5:7:注意:此处声明了“LinkedListNode” 类LinkedListNode{ ^


如果它说还声明了我的LinkedListNode,为什么会出现这些错误?

LinkedListNode
不是一个类型,但
LinkedListNode
是。请确保在定义
LinkedList
之前包含
此头文件

模板
类链接列表
{
私人:
LinkedListNode*头;
LinkedListNode*当前;
}

基本上,编译器说您没有类型
LinkedListNode
,而且编译器是正确的-
LinkedListNode
是一个模板,而不是一个类型。要形成一个类型,您需要用一个参数实例化模板。例如,
LinkedListNode
是一个类型

但是,编译器可以提供更好的诊断。例如,g++将:

4:错误:“x”之前缺少模板参数

private:
    LinkedListNode *head;
    //iterator for traversing the list
    LinkedListNode *current;
template <class T>
class LinkedList
{
private:
    LinkedListNode<T> *head;
    LinkedListNode<T> *current;
}