我有一个接口和一些存储序列化对象的类的实现。我想将实现类转换为模板类,以便我可以将它们与多种类型的对象一起使用,但是我遇到了编译器错误。
#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;
}
我在“class Implementation ...”行中收到“错误:'{'token'之前的预期class-name。
感谢。
答案 0 :(得分:9)
template<typename T>
class Implementation : public Interface<T> {
// ^^^