提问:变量“xxx”不是类型名
问题描述:
最近想复习数据结构,着手重新实现一个简单的二叉树,但在编译的过程中意外地碰到了如图所示的问题:
出错结构体及类代码块如下
typedef struct BinaryTreeNode
{
ElementType data;
BinaryTreeNode *LChild = NULL;
BinaryTreeNode *RChild = NULL;
}BinaryTreeNode;
class BinaryTree
{
public:
BinaryTree() { BTroot = NULL; };
~BinaryTree() {};
bool IsEmpty() { return BTroot; };
void PreOrderRecursive (BinaryTreeNode * BTroot);
void InOrderRecursive (BinaryTreeNode * BTroot);
void PostOrderRecursive (BinaryTreeNode * BTroot);
BinaryTreeNode * MakeNode (ElementType & newvalue);
void MakeBinaryTree (BinaryTreeNode * root, BinaryTreeNode * left, BinaryTreeNode * right);
BinaryTreeNode * DeleBinaryTree (BinaryTreeNode * BTroot);
void NodesCount (BinaryTreeNode * BTroot, int & count);
int Height (BinaryTreeNode * BTroot);
void DisplayNode (BinaryTreeNode * p);
private:
BinaryTreeNode *BTroot;
}
一开始认为是头文件相互包含的原因,遂将头文件全部删掉,合并到 main() 函数所在的cpp 文件里,但仍然是报错。
检查过语法,顺序方面也没有问题,结构体定义在该类之前,尝试了两种结构体定义,报错情况都是一样的,在网上查阅的情况与这个也不太相符,还望有大佬告诉我如何更改。