テンプレートクラスの派生で純枠仮想関数をオーバーライドするものがありません
int main関数の方で derive<int> d;
と宣言すると[純枠仮想関数をオーバーライドするものがありません]というエラー出ます、純枠仮想関数を派生先で定義しているのにも関わらずエラーでる理由がわかりません。教えていただけますでしょうか?
template<class type,class typeb>
class base {
private:
protected:
public:
base(){ }
virtual void f(int x) {
typeb a = x;
std::cout << "仮想関数"<< a <<"\n";
}
virtual type f2(type x)const = 0;//純粋仮想関数
};
template<class typec>
class derive : public base<class type,class typeb> {
public:
derive(){ }
void f(int x) {
std::cout << "派生"<< x<<"\n";
}
typec f2(typec x)const {
std::cout << x;
return x;
}
};