我想创建一个接口,并使其中一个函数的返回类型成为泛型(如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指责“类别声明之前的”{“标记之前的”被排除的类名; 如果我删除通用一切顺利
答案 0 :(得分:3)
应该是
template <class T>
class UnionFindLinkedList : public IUnionFind<T>
{
.....