如何解决:“错误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所说的内容而工作。
谢谢:)
嘿东西发生了!我认为RedBlackTree是一个内部类,但错过了外部类与内部类相同的名称,这是不可能的,因此第二个RedBlackTree是Ctor。 – 2008-12-08 09:31:45