制作模板类后,不是类,名称空间还是枚举?

埃卡塔拉诺

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

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

在我的LinkedList类中,我有私有变量:

private:
    LinkedListNode *head;
    //iterator for traversing the list
    LinkedListNode *current;

};

编译时,出现奇怪的错误:

./LinkedList.h:38:3:错误:未知类型名称'LinkedListNode'; 您是说“ LinkedList”吗?LinkedListNode * head; ^ ~~~~~~~~~~~~~~ LinkedList ./LinkedList.h:13:7:注意:此处声明了“ LinkedList”类LinkedList {^ ./LinkedList.h:40:3:错误:类型未知名称为“ LinkedListNode”;您是说“ LinkedList”吗?LinkedListNode *当前;^ ~~~~~~~~~~~~~~ LinkedList ./LinkedList.h:13:7:注意:'LinkedList'在这里声明为LinkedList类{^ LinkedList.cpp:7:1:错误:'LinkedListNode'是不是类,名称空间或枚举LinkedListNode :: LinkedListNode(){^ ./LinkedList.h:5:7:注意:此处声明的“ LinkedListNode”类LinkedListNode {^

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

YSC

LinkedListNode不是类型,而是LinkedListNode<T>一定要在头文件以及该头文件中定义之前实现LinkedListNode::LinkedListNode()和其他成员函数#includeLinkedList<T>

template <class T>
class LinkedList
{
private:
    LinkedListNode<T> *head;
    LinkedListNode<T> *current;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章