谁能帮我解决我在这里遇到的循环引用错误。
我创建了自己的类,deque
该类由breadthFirst
.FibTree
以下是单独的 Header 和 CPP 文件中的亮点。文件中存在无效使用不完整类型和前向声明错误的问题FibTree
。我在下面的代码行中标记了这些错误。
双端队列
#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
纤维树
#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
纤维树.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'
}
主文件
#include <iostream>
#include "deque.h"
#include "fibtree.h"
int main (int argc, const char* argv[]) {
...
我在这里读过类似的帖子,在我的情况下,应该包含完整的声明dequeList
,所以我#include "deque.h"
在前向声明的上方添加class deque.h"
了fibtree.h;但这向deque.h
类抛出了 16 个编译错误,例如这三个错误:'FibTree' has not been declared against FibTree::Node* data; in
class dequeNode {...`
任何人都可以在这里强调我可能会出错的地方吗?
谢谢,亚历克斯