generics — Интерфейсы с шаблонами Stack Overflow

Я хочу сделать интерфейс и сделать тип возвращаемого значения одной из функций универсальным (как в 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);
};

ИТ обвиняет «ожидаемое имя класса перед» {«токеном в строке объявления класса;
Если я удаляю общий, все идет хорошо

0

Решение

Так должно быть

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]