与模板C ++的接口

时间:2012-10-06 04:41:30

标签: c++ generics interface

我想创建一个接口,并使其中一个函数的返回类型成为泛型(如java中)。 我写了这个:

    template <class T>
    class IUnionFind {
    public:
     IUnionFind();

     ///@param[in] x
     ///@param[in] y
     virtual void unionSet(int x,int y)=0;
     ///@param[in]
     virtual void find (int x)=0;
     virtual T  make_set(int x)=0;
     virtual ~IUnionFind(){};
     };

而eclipse编译器并没有指责任何错误。 但是当我制作一个标题来实现这样的界面时:

    template <class T>
    class UnionFindLinkedList : public IUnionFind {
     public:
     UnionFindLinkedList();
     virtual ~UnionFindLinkedList();
     void unionSet(int x,int y);
     void find (int x);
     T  make_set(int x);
    };

IT指责“类别声明之前的”{“标记之前的”被排除的类名; 如果我删除通用一切顺利

1 个答案:

答案 0 :(得分:3)

应该是

template <class T>
class UnionFindLinkedList : public IUnionFind<T>
{
   .....