インターフェイスを作成し、関数の 1 つの戻り値の型をジェネリック (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は、クラス宣言の行の「{」トークンの前に「予期されたクラス名」を非難します;ジェネリックを削除すると、すべてうまくいきます