BinaryNode和oldNode未在此作用域中声明
BinaryNode and oldNode was not declared in this scope
在我的.h文件中,我有:
class BST
{
private:
struct BinaryNode
{
//variables
};
...
public:
...
}
当我尝试使用结构BinaryNode
时,例如在.cpp文件中:
int BST::height(BinaryNode *t)
{
...
}
我得到BinaryNode was not declared in this scope
的错误
在.cpp中的另一个函数中,我有:
int BST::remove(const DataType &x, BinaryNode *&t)
{
...
else
{
BinaryNode *oldNode = t;
delete oldNode;
}
}
这给了我BinaryNode *oldNode = t
上的错误,即oldNode没有在此范围内声明。我曾尝试在函数的开头将其声明为BinaryNode *oldNode;
,但这也不起作用。我的印象是,我现在所做的也被称为声明它,因为它在同一个函数中,所以它是在该范围内声明的。
如有任何帮助,我们将不胜感激。
BinaryNode包含在封闭类的命名空间中。这样做:
int BST::height(BST::BinaryNode *t)
你也可以试试这个:
using BST::BinaryNode
在CPP文件的顶部,尽管我不确定"使用"支持的通用性。
相关文章:
- 未在作用域中声明unordered_map
- 未在此作用域OpenCV3.4中声明cvSaveImage
- 未在此作用域中声明的函数和变量 (C++)
- 函数未在作用域中声明 / 如何结合使用 header.h、header.cpp 和 main.cpp?
- 重载时未在 C++ 的作用域错误中声明
- 在 C++ 中使用 "transform" 会给出一个错误,指出这未在作用域中声明
- Tictactoe 游戏变量未在作用域中声明
- 当变量在多个函数作用域中使用时,我应该在类 private 中声明该变量吗?
- 如何在C++中嵌套词法作用域可访问的作用域中声明静态信息?
- gets()未在作用域中声明
- 在C++14中,在哪个作用域中声明了重新声明枚举的非范围枚举器
- C++11 外部作用域变量声明为 auto
- 未在此作用域中声明类 (c++)
- 如何声明在函数作用域中定义的结构
- 未在此作用域中声明函数,即使存在头文件也是如此
- 变量声明中结构的作用域解析是什么意思
- 在C++中,在给定的相同作用域内声明相同的变量名
- 我可以使用相同的名称为周围作用域中的类型声明成员类型别名吗
- 类未在作用域中声明,但已声明该类
- 使用新的外部函数作用域声明和初始化变量