我想首先使用队列在c ++中构建树宽度。我有文件Queue.h,Queue.cpp,Tree.h,Tree.cpp和main.cpp。我的主要课程#includes“Tree.cpp”。如何使用#include关键字构造这些文件,以便我的队列可以推送和弹出树节点,我的树可以操作队列?似乎我遇到的部分问题是每个类中的结构都是私有的。我的队列无法在其结构中定义treePtr,并且我的树无法实例化新的队列节点。我应该将每个类中的结构公开,以便它们可以跨类访问吗?一般来说,我怎么想组织这些类来使用封装?
class Tree{
private:
typedef struct tree {
int data;
tree* left;
tree* right;
}* treePtr;
treePtr root;
int numNodes;
void addTree(int n, treePtr child);
treePtr addTree(int n);
public:
Tree();
void addTreeNode(int integer);
treePtr getRoot();
void printTreeNode(int n, treePtr treeRoot);
};
class Queue {
private:
typedef struct node {
Tree::treePtr treeNode;
node* next;
}* nodePtr;
nodePtr head;
nodePtr current;
public:
Queue();
void push(treePtr t);
int pop();
};
答案 0 :(得分:0)
Per @Eugene,答案是让Tree和Queue成为共同的朋友。这是在类体内每个类的头文件中完成的。