我可以在C++中为模板类编写接口吗?

Kev*_*vin 1 c++ polymorphism g++

我有一个接口和一些存储序列化对象的类的实现.我想将实现类转换为模板类,以便我可以将它们与多种类型的对象一起使用,但是我遇到了编译器错误.

#include <iostream>
template<typename T>
class Interface{
public:
    virtual void func(T& c) = 0;
};

class Container{
public:
    Container() : dummy(10){}
    int dummy;
};


template<typename T>
class Implementation : public Interface{
public:
    void func(T& c){
        std::cout << "++c.dummy " << ++c.dummy << std::endl;
    }
};

int main(){
    Container c;
    Implementation<Container> i;
    i.func(c);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我在"class Implementation ..."行中收到"错误:'{'token'之前的预期class-name.

谢谢.

ken*_*ytm 9

template<typename T>
class Implementation : public Interface<T> {
//                                     ^^^
Run Code Online (Sandbox Code Playgroud)