Я пытаюсь создать два класса: lista и iterator. Итератор будет другом класса lista. Проблема в том, что когда я объявляю итератор класса, я получаю эту ошибку: итератор не является классом шаблона. Таковы два file.hне является классом шаблона
Lista .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();
};
'friend class iterator;' должен, вероятно, быть 'template friend class iterator;'. –
@BoPersson Как так? Параметр 'T' является параметром класса. Проблема в том, что 'iterator' не определен в этот момент (в' friend class iterator '). Используйте форвардную декларацию. –
Nelfeal
@Nelxiost Параметры шаблона не _inherited_. –