无法构造基本模板类

问题描述 投票:0回答:1

我有以下模板基类:

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认为我正在尝试初始化一个成员,但我只是想初始化基础。

c++ gcc
1个回答
1
投票

你应该写模板参数

Base<K>(tableSize)
© www.soinside.com 2019 - 2024. All rights reserved.