错误:“预期的班级名称”

时间:2012-03-20 22:48:29

标签: c++ class inheritance

我在这里搜索了其他“预期的类名称”错误问题,但它们都是“...之前'{'标记”或“...之前';'”。

解决方案是包含正确的文件,但我的文件包含包含继承类的.h文件。

#include "BinaryNode.h"
#include "bst.h"

template <class T>
class SOBTree: public BinarySearchTree { //Expected Class Name
public:
    void insert( const T& x );
    void remove( const T& x );
    int reportComparisonCount();
    double reportCPUTime();


private:
    void insert( const T & x, BinaryNode<T> * & t );
    void RotateRight(BinaryNode<T> * & root );
    void RotateLeft(BinaryNode<T> * & root );
    BinaryNode<T> *root;

};

继承的类在bst.h中定义,所以我没有其他文件要包含在项目中。

很抱歉这个简单的问题,我只是不知道为什么会发生错误。

2 个答案:

答案 0 :(得分:7)

更改

class SOBTree: public BinarySearchTree 

class SOBTree: public BinarySearchTree<T> 

..作为BinarySearchTree,(肯定)也是一个模板。

答案 1 :(得分:2)

BinarySearchTree是否也可能是模板,您需要从BinarySearchTree<T>派生?

否则很明显BinarySearchTree从未被定义过。原因可能是头文件中的标题保护冲突。