2

我有两个标题

在标题“BinTree.h”中:

typedef struct node {
    ElemType data;
    struct node *lchild;
    struct node *rchild;
}BTNode;

在标题“Queue.h”(包括 BinTree.h)中:

typedef BTNode* Dataype;

在编译编译器时说:错误:'BTNode'没有命名类型

怎么了?

4

2 回答 2

2

BinTree.hQueue.h声明之前加入了吗?

或者让你.cpp(或道德上的等价物)事先包含它

为 CDT 编辑

前向声明就是答案。

由于您没有发布代码,因此很难说。

但我会在这里猜测

typedef struct node BTNode;

谁会撞到票Queue.h

于 2012-11-05T15:58:50.723 回答
1

如果你有相互包含,你需要你的节点类型的前向声明。在之前添加typedeftypedef struct node BTnode;

于 2012-11-05T16:23:26.513 回答