Probleme avec les templates

Probleme avec les templates - C++ - Programmation

Marsh Posté le 23-10-2005 à 13:11:37    

:hello:
 
J'ai crée un programme qui fait des opérations sur une liste chainée
Pour le moment, les cellules de ma liste chainée ne contiennent que des valeurs entieres.
Pour améliorer mon programme, j'essaye d'utiliser des templates afin de ne pas être limité qu'aux seules valeurs entières;
 

Code :
  1. template <class TElement> class Cellule {
  2.   public :
  3.   Cellule *precedent;
  4.   Cellule *suivant;
  5.   TElement valeur;
  6.   Cellule(TElement t , Cellule *p , Cellule *s);
  7. }


 
J'utilise une classe Iterateur qui a comme parametre une Cellule.
 

Code :
  1. //Une instance de la classe iterateur va pointer sur une des cellules de la liste chainee
  2. class Iterateur {
  3.   public :
  4.   //bug a ce niveau : on me demande le type de la cellule
  5.   Cellule *celluleCourante;
  6.  
  7.   Iterateur(Cellule *c);
  8.   //pointer vers la cellule suivante de la liste
  9.   void avancer();
  10.   //pointer vers la cellule precedente de la liste
  11.   void reculer();
  12. }


 
Le probleme est que dans ma classe itérateur, on me demande à présent le type de la Cellule, hors je ne peux le connaitre à ce stade :(
Comment puis-je donc procéder ?
 
Merci

Reply

Marsh Posté le 23-10-2005 à 13:11:37   

Reply

Marsh Posté le 23-10-2005 à 13:51:06    

A part faire un iterateur générique je vois pas trop comment tu peux connaitre le type de Cellule.

Reply

Marsh Posté le 23-10-2005 à 13:56:57    

Qu'est ce que tu veux dire par un itérateur générique ?

Reply

Marsh Posté le 23-10-2005 à 14:11:56    

Code :
  1. template <class Type>
  2.      //Une instance de la classe iterateur va pointer sur une des cellules de la liste chainee
  3.      class Iterateur {
  4.        public :
  5.        //bug a ce niveau : on me demande le type de la cellule
  6.        Cellule<Type> *celluleCourante;
  7.        
  8.        Iterateur(Cellule<Type> *c);
  9.    
  10.        //pointer vers la cellule suivante de la liste
  11.        void avancer();
  12.    
  13.        //pointer vers la cellule precedente de la liste
  14.        void reculer();
  15.      }

Reply

Marsh Posté le 23-10-2005 à 15:09:53    

et std::list<> ?

Reply

Marsh Posté le 23-10-2005 à 16:05:19    

Taz a écrit :

et std::list<> ?


ou autre : http://c.developpez.com/faq/cpp/?p [...] _conteneur


---------------
Nos estans firs di nosse pitite patreye...
Reply

Marsh Posté le 23-10-2005 à 18:07:10    

on s'en fiche. Si tu codes bien, tu peux passer de l'un à l'autre facilement.

Reply

Marsh Posté le 23-10-2005 à 18:41:13    

oui mais autant choisir le bon directement...


---------------
Nos estans firs di nosse pitite patreye...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed