我对C++模板非常陌生。我目前正在开发一个项目,我需要使用模板来实现一个双链表。这是目前我到目前为止有:(C++)双链表列表模板 - 访问问题
template<class ItemType>
class SortedList
{
public:
SortedList();
~SortedList();
bool Insert (ItemType toAdd);
bool Delete (ItemType toDelete);
void Print();
private:
SortedList (const SortedList & copyFrom);
SortedList & operator= (const SortedList & assignFrom);
struct Node
{
Node (ItemType item, Node * p = NULL, Node * n = NULL)
{ data = item; prev = p; next = n; }
ItemType data;
Node * prev, * next;
};
Node * list;
};
template<class ItemType>
SortedList<ItemType>::SortedList()
{
list == NULL;
}
template<class ItemType>
SortedList<ItemType>::~SortedList()
{
Node * curr = list;
while (curr != NULL)
{
Node * tempNext = curr->next;
delete current;
current = tempNext;
}
}
然而,在我的析构函数,例如,为什么我不能访问节点元素?现在编译该方法内的代码,但不会抛出错误。但是,如果我尝试使用 - >在curr上,next或prev不会出现。为什么我无法访问这些?我觉得我缺少一些非常明显的东西来开始。
另外,我怎么能初始化函数头中的列表== NULL,而不是在类之外呢?
有在构造一个错字。它应该是list = NULL;你不使用==来初始化,而是进行比较。 – 2014-10-28 05:39:59