私はlistaとiteratorの2つのクラスを作成しようとしています。イテレータはクラスリストの友人になります。問題は、クラスのイテレータを宣言すると、このエラーが発生するということです。イテレータはテンプレートクラスではありません。 これらの2つのファイル.hはテンプレートクラスではありません
リスタの.Hです:
*#include "nodo.h"*
template <class T>
class lista{
public :
//all the function
private :
nodo<T> *list;
nodo<T> *tail;
int n;
friend class iterator<T>;
};
iterator.h:
*#include "lista.h"*
template<class Z>
class iterator {
public :
lista<Z> a;
iterator();
};
'友人クラスイテレータ;'おそらく 'テンプレート友人クラスイテレータ;'であるべきです。 –
@BoPerssonどのように? 'T'はクラスのテンプレートパラメータです。問題は 'iterator'がこの時点で定義されていないことです(' friend class iterator ')。前方宣言を使用してください。 –
Nelfeal
@Nelxiostテンプレートパラメータは_inherited_ではありません。 –