在头文件中实现一个帮助器类

时间:2013-11-10 08:45:30

标签: c++ inner-classes

在头文件中说我可以完全定义一个辅助类,并在包含头文件的类文件中使用它。这样做的正确方法是什么? // HEADER

class LinkedList() {
   public:
       LinkedList(int a);
   private:
      Node *root;
      class Node {
        int data;
        Node *next;
      };
};  

// cpp file

#include "LinkedList"
LinkedList::LinkedList(int a) {
    root = new Node();
    root.data = a;
    root->next = NULL;
}

当我尝试做类似的事情时,最终说Node不是我头文件中的类型名称。

1 个答案:

答案 0 :(得分:0)

这完全没问题。我对你的代码做了一些修复。

<强> LinkedList.h

class LinkedList
{
  public:
       LinkedList(int a);
   private:
      class Node {
      public:
        int data;
        Node *next;
      };
      Node *root;
};

<强> LinkedList.cpp

LinkedList::LinkedList(int a) {
    root = new Node();
    root->data = a;
    root->next = NULL;
}

在您声明并定义它之前,您尝试使用Node。 C ++类中的默认访问级别是私有的,因此您无法访问Node构造函数中LinkedList的私有数据成员。