子类模板错误 (C++): "error: 'root' was not declared in this scope"
Subclass Template error (C++): "error: 'root' was not declared in this scope"
>我正在研究一个名为"BinarySearchTree"的子类,它继承自其超类"BinaryTree"
二进制树.h
template <class T>
class BinaryTree
{
public:
BinaryTree() { root = NULL; }
protected:
BTNode<T> *root; // Root node (NULL if the tree is empty)
};
BinarySearchTree.h
template <class T>
class BinarySearchTree : public BinaryTree<T>
{
public:
BinarySearchTree(); // call super's
bool insert( const T& elem );
bool insertHelper(BTNode<T> *&, T );
};
template<class T>
BinarySearchTree<T>::BinarySearchTree() : BinaryTree<T>()
{
root = NULL; // <---- error: In constructor 'BinarySearchTree<T>::BinarySearchTree()'
//: BinarySearchTree.h:85: error: ‘root’ was not declared in this scope
};
我知道这与根在范围内无法识别有关,但是我该如何解决此问题?
例如:
BinaryTree<T>::root = NULL;
有关解释,请参阅此处:
http://www.parashift.com/c++-faq/nondependent-name-lookup-members.html
相关文章:
- OpenMP卸载说'fatal error: could not find accel/nvptx-none/mkoffload'
- 使用JsonCpp将数据返回到带有pybind11的python会在python调用中产生Symbol not foun
- OpenCV Android C++ imwrite not found
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 使用单词"not"作为C ++类的名称会导致VS2019错误
- 错误"Could not find Boost"(缺少:上下文标头)
- 如何将分支添加到已存在的TTree:ROOT
- 如何修复"error: ‘_1’ was not declared in this scope"?
- 套接字连接"Operation not permitted"错误,甚至使用升压/平发器根.cpp
- Is !NaN not a NaN?
- 为什么我会" void value not ignored as it ought to be"?
- 解决"ld: library not found for -ltensorflow_framework.2.3.0"
- 加载与引用 .NET DLL 位于同一文件夹中的引用的 .NET DLL 时"Not found"异常
- Directx 11 - CompileFromFile() is not compiling
- 方法错误"not all control paths return a value"和方法不返回值
- Centos7 g++ "to_string is not in a member of std"
- 将系数存储在头文件的数组中("does not name a type"错误)
- QGraphicsItems not showing up QGraphicsScene
- 在调试模式下引发C++ "deque iterator not dereferencable"异常
- 子类模板错误 (C++): "error: 'root' was not declared in this scope"