2012-10-06 50 views
0

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

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); 
    }; 

“之前excpected类名‘IT指责{’令牌类声明的线; 如果我删除了通用一切顺利

回答

3

它应该是

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