0

テンプレートの継承に小さな問題があります。

テンプレートを使用してインターフェイス クラスを作成する場合:

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
}

コンパイラでこれが機能するのに問題があるようです。これは合法ではありませんか?

4

3 に答える 3