Salut a tous,j'ai un probleme avec les template ,j'ai réaliser une petite classe pile
qui marche très bien mais quand j'ai voulus la rendre generique je suis tembé dans de plusieurs erreurs.

J'ai voulues envoyer tous le projet en pièce jointe mais ça n'a pas marché,bon je l'envoie avec la balise code.
S'il vous plais compiler le et montrer moi mes erreurs.

Merci d'avance.

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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
 
//le fichier noeud.h
#include "iostream.h"
#include "stdlib.h"
#include "time.h"
 
 
template <class T> class noeud
{
public:
	noeud(T ielt=0,noeud<T>* isvt=NULL);
 
private:
	friend class pile;
	T elt;
	noeud<T>* svt;
};
//le fichier pile.h 
#include "noeud.h"
 
template <class T> class pile
{
public:
	pile();
	~pile();
	void empiler(T);
	void depiler();
	void afficher();
private:
	noeud<T>* tete;
};
//le fichier pile.cpp
#include "pile.h"
 
 
pile<T>::pile()
{
	tete=NULL;
}
template <class T> pile<T>::~pile()
{
	while(tete!=NULL)
	{
		depiler();
	}
	delete tete;
}
 
template <class T> void pile<T>::empiler(T val)
{
	noeud<T>* n=new noeud<T>(val);
 
	n->elt=val;
	n->svt=tete;
	tete=n;
}
 
template <class T> void pile<T>::depiler()
{
	noeud<T>* p;
	if(tete!=NULL)
	{
		p=tete;
		tete=tete->svt;
	}
	delete p;
}
 
template <class T> void pile<T>::afficher()
{
	if(tete==NULL)
		cout<<"la pile est vide";
	if(tete!=NULL)
	{
		noeud<T>* n=tete;
		while(n!=NULL)
		{
			cout<<"<"<<n->elt<<"> "<<endl;
			n=n->svt;
		}
	}
	cout<<endl;
}
//le fichier noeud.cpp
#include "noeud.h"
 
template <class T> noeud<T>::noeud(T ielt,noeud<T>* isvt)
{
	elt=ielt;
	svt=isvt;
}
//le fichier main.cpp
#include "pile.h"
 
main()
{
	pile <int> p;
 
	p.empiler(7);
	p.empiler(8);
	p.empiler(9);
	p.empiler(10);
	p.afficher();
	p.depiler();
	p.depiler();
	p.depiler();
	p.depiler();
	p.afficher();
 
 
}