我有以下模板基类:
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认为我正在尝试初始化一个成员,但我只是想初始化基础。
答案 0 :(得分:1)
您应该编写模板参数
Base<K>(tableSize)