Ich versuche, zwei Klassen zu erstellen: lista und iterator. Iterator wird ein Freund der Klassenliste sein. Das Problem ist, dass wenn ich den Klasseniterator deklariere ich diesen Fehler erhalte: Iterator ist keine Vorlagenklasse. Diese sind die beiden file.hist keine Vorlagenklasse
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();
};
'Freund Klasse Iterator;' sollte wahrscheinlich 'Vorlage Freund Klasse Iterator;'. –
@BoPersson Wie so? 'T' ist der Vorlagenparameter der Klasse. Das Problem ist, dass 'iterator' zu diesem Zeitpunkt nicht definiert ist (bei' friend class iterator '). Verwenden Sie die Vorwärtsdeklaration. –
Nelfeal
@Nelxiost Template-Parameter werden nicht _inherited_. –