0

ヘッダー ファイルで、ヘルパー クラスを完全に定義して、ヘッダーを含むクラス ファイルで使用できるとします。それを行う正しい方法は何ですか?//ヘッダ

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

//cpp ファイル

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

そのようなことをしようとすると、 Node はヘッダーファイルのタイプの名前ではないと言ってしまいます。

4

1 に答える 1

1

それはまったく問題ありません。私はあなたのコードにいくつかの修正を加えました。

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

于 2013-11-10T08:49:49.743 に答える