Bonjour, j'ai un problème avec la réalisation d'une liste chainée générique.
C'est la classe Iterator qui pose problème. Mon compilateur est GCC.
La classe cellule.
Voici la classe Iterator
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #ifndef CELLULE_H #define CELLULE_H #include "iterator.h" template<typename T>class Cellule { friend class Iterator<T>; public: Cellule(T & i) : valeur(&i) , suivante(NULL) {}; Cellule() : valeur(NULL) , suivante(NULL) {}; template<typename U> friend class Iterator; private: T * valeur ; Cellule * suivante ; }; #endif // CELLULE_H
A la compilation, j'obtiens les erreurs suivantes (entre autre).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #ifndef ITERATOR_H #define ITERATOR_H #include "cellule.h" template<typename T>class Iterator { public: Iterator(); Iterator( Cellule<T> & cell ) ; courante(cell) , firstCell(cell);//ligne 10 void allerDebut(); void allerFin(); bool avancer(); void ajouter(T & elem); void supprimer(); private: Cellule<T> & courante ; Cellule<T> & firstCell ; }; //#include "iterator.tpp" #endif
Voilà je comprend pas pourquoi il manque une parenthèse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 C:/Program Files (x86)/CodeLite/TP_CPP/Projet_CPP/liste/iterator.h:10: error: expected ')' before '<' token C:/Program Files (x86)/CodeLite/TP_CPP/Projet_CPP/liste/iterator.h:10: error: 'cell' has not been declared C:/Program Files (x86)/CodeLite/TP_CPP/Projet_CPP/liste/iterator.h:10: error: ISO C++ forbids declaration of 'courante' with no type C:/Program Files (x86)/CodeLite/TP_CPP/Projet_CPP/liste/iterator.h:10: error: 'cell' has not been declared C:/Program Files (x86)/CodeLite/TP_CPP/Projet_CPP/liste/iterator.h:10: error: ISO C++ forbids declaration of 'firstCell' with no type
J'aimerais également savoir comment utiliser la liste d'initialisation pour initialiser les deux variables membres de "Iterator" avec le constructeur par défaut de Cellule, à la ligne 9.
Merci d'avance !
Partager