0

したがって、LinkedList クラスに記述したばかりの Node クラスを使用しようとしていますが、次のエラーが発生します。

Symbol 'Node' could not be resolved

以下のコードで。

#ifndef LINKEDLIST_H_
#define LINKEDLIST_H_

#include "Node.h"

template<class T>
class LinkedList {

    private:
        //Data Fields-----------------//
        Node<T> head;
        Node<T> tail;
};

#endif /* LINKEDLIST_H_ */

ノードの宣言は次のとおりです。

#ifndef NODE_H_
#define NODE_H_

template<class T>
class Node {

アップデート:

そのため、Node クラスが LinkedList に含まれていることにまだ問題があります。しかし、2 つのクラスを 1 つのヘッダー ファイルに配置することで、問題がないことがわかりました。したがって、問題はインクルージョンのみにあることを意味するに違いありません....これは、私のようなC ++の初心者が知らない言語ベースのニュアンスのように見えるため、私を混乱させます..

4

2 に答える 2

2

#include "Node.h" の後にセミコロンがあるのはなぜですか。それが問題です。
編集:トラブルシューティングのためにできること:

  1. クラス定義をインライン化します。
    つまり、 # include ステートメントをクラスの実際の定義に置き換えます (テストのみ)。
  2. ヘッダー ガードを確認します ( # ifndef LINKEDLIST_H_ のようなものは、
    名前を変更するか、完全に削除してみてください (これもテストのみ)。
于 2012-08-18T16:23:01.690 に答える
0

したがって、これはランダムに機能し始めました...問題が何であるかはわかりませんが、現在は機能しています... eclipseでCDTを使用していますが、C ++開発にとって最も安定したものではありません。だから私の推測では、それはどういうわけかそれに関係している....

于 2012-08-23T03:09:56.007 に答える