我有两个标题
标题“BinTree.h”中的:
typedef struct node {
ElemType data;
struct node *lchild;
struct node *rchild;
}BTNode;
标题“Queue.h”中的(包括BinTree.h):
typedef BTNode* Dataype;
在编译compilor时说: 错误:'BTNode'没有命名类型
怎么了?
答案 0 :(得分:1)
您是否在声明之前在BinTree.h
中添加了Queue.h
?
或者你.cpp
(或道德等同物)事先包括它
编辑CDT
前瞻声明就是答案。
由于您没有发布代码,因此很难说。
但我会在这里嗤之以鼻
typedef struct node BTNode;
可以在Queue.h
答案 1 :(得分:1)
如果您有相互包含,则需要转发声明您的节点类型。在typedef
:typedef struct node BTnode;