我正在尝试对一些类(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也被声明,为什么会出现这些错误?
LinkedListNode
不是类型,而是LinkedListNode<T>
。一定要在头文件以及该头文件中定义之前实现LinkedListNode::LinkedListNode()
和其他成员函数。#include
LinkedList<T>
template <class T>
class LinkedList
{
private:
LinkedListNode<T> *head;
LinkedListNode<T> *current;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句