c++ - 如何从双向链表中获取节点内部的有效负载

标签 c++ class nested

template<class T> class CRevList
{
public:
//...constructor, destructor, etc;
  class Node //nested class   
  {
  public:
   friend class CRevList;

    Node() {m_next = 0;  m_prev = 0;}
    Node(const T &t) {m_payload = t;  m_next = 0;  m_prev = 0;}

    T Data() {return m_payload;}
    const T Data() const {return m_payload;}

    private:

      Node    *m_next;
      Node    *m_prev;
      T       m_payload;
  };
private: //for original class
  Node    *m_head, *m_tail;             // Head node
  unsigned size;
};

我已经多次尝试从原始双向链接类中获取节点的有效负载,不幸的是我遇到了错误。最喜欢:

       error: request for member 'Data' in 'Temp1', which is of non-class type 'CRevList<int>::Node*'

我一定是弄乱了两个类之间的指针或关系。

我试过:

  //Find a node with the specified key
  const Node *Find(const T &t) const {  }
  Node *Find(const T &t) {
    Node * Temp1 = m_head;

    while(m_tail != Temp1){
            if(Temp1.Data() == t){
                    return Temp1;
            }

            Temp1 = Temp1->m_next;
    }
  }

最佳答案

Temp1Node * 类型。因此,您应该调用 Temp1->Data() 而不是 Temp1.Data()

关于c++ - 如何从双向链表中获取节点内部的有效负载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14734664/

相关文章:

c++ - GetAsyncKeyState 和 ofstream

c++ - 编写xml文件

c++ - 如果 T 不是默认可构造的,如何优雅地初始化 std::array<T, n>?

c++ - 作为类成员变量的指针/类中的动态内存

ruby - 如何在 Ruby 模块上调用 #new 来实例化其类之一?

java - 如何创建包含调用的构造函数的静态嵌套类的实例(在 Java 中)

linux - 修复体上的 tar 巢

c++ - 使用 GCC 依赖文件导致 Make 每次都完全重建项目

java - _ClassInstance 符号?

c++ - 是否有可能从内部(它们是嵌套的)到达外部 QML Repeater 的索引?