无法构造基本模板类

时间:2017-12-24 13:33:52

标签: c++ gcc

我有以下模板基类:

template <class K>
class Base
{
protected:
    Base(int tableSize) : m_tableSize(tableSize) {}
    int doBaseWork(const K& data);
private:
    int m_tableSize;
};

此模板类继承它:

template <class K>
class Derived : public Base<K>
{
public:
    Derived (int tableSize) : Base(tableSize){}
private:
    int doDerivedWork();
};

然后在我使用的代码中的某处:

Derived<int> testDerived(10);

使用gcc编译时出现以下错误

class 'Derived<K>' does not have any field named 'Base'

我做错了什么?似乎gcc认为我正在尝试初始化一个成员,但我只是想初始化基础。

1 个答案:

答案 0 :(得分:1)

您应该编写模板参数

Base<K>(tableSize)