链表中节点的字段未解析

Field not resolved for node in Linked list

本文关键字:字段 节点 链表      更新时间:2023-10-16

我收到以下代码行的"字段未解决错误":

template <class Object>
void FHlist<Object>::pop_back()
{
   Node *p;
   // safer, but a little slower with this test
   if ( mSize == 0 )
      return;
   p = mTail->prev;
   mTail->prev = p->prev;  // ERROR IS HERE
   mTail->prev->next = mTail;
   delete p;
   mSize--;
}

这是我的节点类声明:

template <class Object>
class FHlist<Object>::Node
{
public: 
   Node *prev, *next;
   Object data;
   Node( const Object & d = Object(), Node *prv = NULL, Node *nxt = NULL )
      : prev(prv), next(nxt), data(d)
   { }
}; 

为什么我会收到此错误,我将如何解决?

您可能需要更改代码,如下所示:

template <class Object>
class FHlist<Object>::Node
{
    public: 
       Node<Object> *prev, *next;
}; 

参考这个

另外,您可能还想重新访问您的pop_back fn,

   p = mTail;
   mTail = p->prev;
   mTail->next = NULL;
   delete p;

我认为错误在上一行。什么是mTail?-编辑- 如何将其添加为评论?