File en c++

cs_ralou Messages postés 11 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 8 mars 2006 - 6 mars 2006 à 06:36
cs_ralou Messages postés 11 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 8 mars 2006 - 8 mars 2006 à 05:46
salut les amis
pour bien comprendre la file et la genericite plus les pointeurs je voulais terminer cet excercice mais vraiment j'ai pas arriver a le faire, est ce que vous pouvez aider..
// Fichier: noeud.hpp
#ifndef NOEUD_INCLU
#define NOEUD_INCLU

template <typename T>
class File;

template <typename T>
class Noeud {
friend class File<T>;
public:
Noeud(T& unElement, Noeud* unSuivant) :
_element(unElement),
_suivant(unSuivant) {}
~Noeud() {}
private:
T& _element;
Noeud* _suivant;
};

#endif

=======================
// Fichier: noeud.hpp
#ifndef NOEUD_INCLU
#define NOEUD_INCLU

template <typename T>
class File;

template <typename T>
class Noeud {
friend class File<T>;
public:
Noeud(T& unElement, Noeud* unSuivant) :
_element(unElement),
_suivant(unSuivant) {}
~Noeud() {}
private:
T& _element;
Noeud* _suivant;
};

#endif

=================== mon fichier file.cpp

//Implémentation des méthodes publiques de la classe File
#include "file.hpp"
#include "noeud.hpp"
#include <queue> //File d'attente

using namespace std;

//Constructeur sans paramètre
template <class T>
File<T>::File() {

_tete = NULL;
_fin = NULL;
}


//Destructeur
template <class T>
File<T>::~File() {}


//Vérifier si la file est vide ou pleine
template <class T>
bool File<T>::vide() const {

return _tete == 0;
}



//Enfiler
template <class T>
void File<T>::enfiler(T & unElement) {

//Créer un nouveau noeud qui pointe vers null
( Noeud<T> * Nouveau_Noeud = new Noeud<T>(unElement,0); )


//Vérifier si la file contient des éléments
if (_fin != 0) {

_fin->_suivant = Nouveau_Noeud;
_fin = Nouveau_Noeud;
} else {

_tete = Nouveau_Noeud;
_fin = Nouveau_Noeud;
}
}//fin enfiler



//Défiler
template <typename T>
T& File<T>::defiler() throw (ExceptionFileVide) {

//Recueillir la données contenue dans le noeud
T reponse = _tete->elem;

//Faire pointer un noeud temporaire sur la tête
Noeud<T> * tmp = _tete;
tete = tete->suivant;

//Vérifier si la file est vide
if (_tete == 0) {

_fin = 0;
} else {

delete tmp;
return reponse;
}
}//fin defiler



//Afficher toutes les données contenus dans la file
template <typename T>
void afficher() {

T tmp = _tete->elem;

while (tmp != _fin) {

cout << tmp->elem << endl;
tmp ++;
}
}


qd je compile il me donne une erreur liee a la ligne qui est entre ()

merci bcp et bonne nuit :-)

2 réponses

cs_ralou Messages postés 11 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 8 mars 2006
6 mars 2006 à 06:51
salut
excusez moi, la ligne qui est entre () est dans le troisieme fichier file.cpp


//Créer un nouveau noeud qui pointe vers null
( Noeud<T> * Nouveau_Noeud = new Noeud<T>(unElement,0); )

salut
0
cs_ralou Messages postés 11 Date d'inscription lundi 6 février 2006 Statut Membre Dernière intervention 8 mars 2006
8 mars 2006 à 05:46
salut les amis

aucune reponse :-), je sais que vous etes bcp plus cometants pour un tout petit probleme comme le present, mais je pense que personne n'a repondu parce que j'ai ecris a la fin BONNE NUIT :-) alors toutes mes excuses, mais sachez que la ou j'ai ecris le message il etait presque 6 du matin, je me suis vraiment casse la tete avec avant de vous demander de l'aide
et sachez que je ne l'ai pas encore trouve :-(

merci d'avance

salut
0
Rejoignez-nous