ここで発生している循環参照エラーを解決するのを手伝ってくれる人はいますか?
のメソッドでdeque
使用される独自のクラスを作成しました。breadthFirst
FibTree
以下は、個別のヘッダー ファイルと CPP ファイルのハイライトです。不完全な型の無効な使用とファイルの前方宣言エラーに関する問題がありFibTree
ます。以下のコード行でこれらのエラーをマークしました。
deque.h
#ifndef DEQUE_H
#define DEQUE_H
#include "fibtree.h"
class dequeNode {
public:
FibTree::Node* data;
};
class dequeList {
public:
dequeNode* firstNode;
dequeNode* lastNode;
dequeList( void );
void enque( FibTree::Node* );
FibTree::Node* deque( void );
};
#endif
fibtree.h
#ifndef FIBTREE_H
#define FIBTREE_H
#include <iostream>
class dequeList; // ERROR: Forward declaration of 'struct dequeList' (2 ERRORS)
class FibTree {
public:
class Node {
...
};
Node const* root; // 'root' pointer to constant Node
FibTree (int);
void breadthFirst(Node const* root);
};
#endif
fibtree.cpp
#include "fibtree.h"
void FibTree::breadthFirst(Node const* root) { // Breadth-first traversal
dequeList* list = new dequeList(); //*** ERROR: Invalid use of incomplete type 'struct dequeList'
list->enque(root); //*** ERROR: Invalid use of incomplete type 'struct dequeList'
}
main.cpp
#include <iostream>
#include "deque.h"
#include "fibtree.h"
int main (int argc, const char* argv[]) {
...
同様の投稿HEREを読んで、私の場合は完全な宣言を含める必要があると読んだので、fibtree.hの前方宣言の上dequeList
に追加しました。しかし、これにより、次の 3 つのエラーのような16 のコンパイル エラーがクラスにスローされました。#include "deque.h"
class deque.h"
deque.h
FibTree::Node* data; in
ここで私が間違っている可能性がある場所を誰かが強調できますか?
ありがとう、アレックス