模板接口实现类C ++错误

时间:2013-09-19 06:14:41

标签: c++ visual-studio-2010 oop interface

我在模板继承方面遇到了一个小问题。

如果我使用模板创建接口类:

template<typename Data>   
class InterfaceClass {
   private:
   public:
      virtual Data* foo() = 0; //some function that returns our template type
}

然后我创建了一个这样的实现:

template<typename MoData>
class Implementation : public InterfaceClass<MoData> {
   private:
   public:
      MoData* foo() { MoData* ptr = NULL; return ptr; } //some implementation
}

我似乎在编译器中遇到了麻烦。这不合法吗?

3 个答案:

答案 0 :(得分:3)

template<typedef Data>

不正确。

你应该使用

template<class Data>

template<typename Data> 

答案 1 :(得分:1)

template <typedef Data>

错误,请使用

template <typename Data>   

答案 2 :(得分:0)

请在课程声明结束时添加分号。

template<typename Data>   
class InterfaceClass {
   private:
   public:
      virtual Data* foo() = 0; //some function that returns our template type
};