如何解决:“错误C2039:'{ctor}':不是”Visual Studio 2005中的成员?

问题描述:

我延长使用Visual Studio C++模板类2005 这是给我一个错误,当我尽量延长与模板的基类:当我尝试实例化如何解决:“错误C2039:'{ctor}':不是”Visual Studio 2005中的成员?

template <class K, class D> 
class RedBlackTreeOGL : public RedBlackTree<K, D>::RedBlackTree // Error 1 
{ 
public: 
    RedBlackTreeOGL(); 
    ~RedBlackTreeOGL(); 

和第二误差对象:

RedBlackTreeOGL<double, std::string> *tree = new RedBlackTreeOGL<double, std::string>; // error 2 

错误1:

** redblacktreeopengl.hpp(27):错误C2039: '{}构造函数':不是 'RedBlackTree'一个构件与 [ K =双, d =的std :: string ] **

错误2:

main.cpp中(50):见参考文献类模板实例 'RedBlackTreeOGL'正在编译

代码试图继承构造函数,而不是类:-)

类声明的开始日粮应该是

template <class K, class D> 
class RedBlackTreeOGL : public RedBlackTree<K, D> 

请问RedBlackTree<K, D>::RedBlackTree有一个默认的构造函数吗?如果你有其他的参数化构造函数(ctors),C++本身并没有定义一个默认的构造函数。

@ SDX2000:

是的,我已经在RedBlackTree :: RedBlackTree定义构造函数:

template <class K, class D> 
class RedBlackTree 
    { 
    public: 
     RedBlackTree(); 
     // Deleting a storage object clears all remaining nodes 
     ~RedBlackTree(); 

我还实施了身体为constuctor和析构函数RedBlackTree类

OMG,我觉得很傻.....一直在看我自己的代码太久了!

这是一个非常基本的东西,我不知道我错过了它!

谢谢James(和SDX2000)通过将声明结尾处的“构造函数”带到James所说的内容而工作。

谢谢:)

+0

嘿东西发生了!我认为RedBlackTree是一个内部类,但错过了外部类与内部类相同的名称,这是不可能的,因此第二个RedBlackTree是Ctor。 – 2008-12-08 09:31:45