Correction TD6POO .pdf



Nom original: Correction TD6POO.pdf
Titre: #include<iostream
Auteur: Imen Boudali

Ce document au format PDF 1.5 a été généré par Microsoft® Office Word 2007, et a été envoyé sur fichier-pdf.fr le 04/01/2011 à 15:38, depuis l'adresse IP 41.224.x.x. La présente page de téléchargement du fichier a été vue 1289 fois.
Taille du document: 120 Ko (3 pages).
Confidentialité: fichier public




Télécharger le fichier (PDF)










Aperçu du document


Institut Supérieur d’Informatique

2SIL - 2010/2011

Correction TD6: Généricité
#include&lt;iostream.h&gt;
template&lt;class T=int&gt;
class pile
{
private:
int taille ;
T *tab;
int sommet;
public:
pile(int);
~pile();
pile(const pile&lt;T&gt;&amp;);
bool est_vide();
bool est_pleine();
void empiler(T);
T depiler();
pile&lt;T&gt;&amp; operator=(const pile&lt;T&gt;&amp;);
bool operator==(const pile&lt;T&gt; &amp;);
friend ostream&amp; operator&lt;&lt;(ostream&amp; out , const pile&lt;T&gt;&amp;
Pil)
{
for(int i=0; i&lt;=Pil.sommet;i++)
cout&lt;&lt;Pil.tab[i]&lt;&lt;&quot;|&quot;;
return(out);
}
};
template&lt;class T&gt;
pile&lt;T&gt;::pile(int n)
{taille=n;
sommet=-1;
tab=new T[taille];
}
template&lt;class T&gt;
pile&lt;T&gt;::pile(const pile&lt;T&gt;&amp; p)
{
taille=p.taille;
sommet=p.sommet;
for(int i=0;i&lt;=sommet;i++)
tab[i]=p.tab[i];
}
template&lt;class T&gt;
pile&lt;T&gt;::~pile()

Page 1 sur 3

Institut Supérieur d’Informatique

2SIL - 2010/2011

{delete[]tab;}
template&lt;class T&gt;
T pile&lt;T&gt;::depiler()
{
if (!this-&gt;est_vide())
return(tab[sommet--]);
}
template&lt;class T&gt;
void pile&lt;T&gt;::empiler(T elm)
{
if(!this-&gt;est_pleine())
{
tab[++sommet]=elm;
}
}
template&lt;class T&gt;
bool pile&lt;T&gt;::est_pleine()
{return(sommet==taille-1);}
template&lt;class T&gt;
bool pile&lt;T&gt;::est_vide()
{return(sommet==-1);}
template&lt;class T&gt;
pile&lt;T&gt;&amp; pile&lt;T&gt;::operator=(const pile&lt;T&gt;&amp; Pil)
{
if(this!=&amp;Pil)
{
taille=Pil.taille;
sommet=Pil.sommet;
for(int i=0;i&lt;=sommet;i++)
tab[i]=Pil.tab[i];
}
return(*this);
}
template&lt;class T&gt;
bool pile&lt;T&gt;::operator==(const pile&lt;T&gt;&amp;Pil)
{ if(sommet!=pil.sommet)
return false;
else
{
for(int i=0;i&lt;=sommet;i++)
if (tab[i]!=Pil.tab[i])
return false;
}
return true;
}

Page 2 sur 3

Institut Supérieur d’Informatique

2SIL - 2010/2011

/***********Programme principal
void main()
{
pile&lt;&gt; p(6);
for(int i=0;i&lt;6;i++)
p.empiler(i);
cout&lt;&lt;p;
pile&lt;char&gt; p2(4);
p2.empiler('a');
p2.empiler('b');
p2.empiler('c');
p2.empiler('d');
cout&lt;&lt;p2;
}

Page 3 sur 3


Correction TD6POO.pdf - page 1/3
Correction TD6POO.pdf - page 2/3
Correction TD6POO.pdf - page 3/3

Documents similaires


correction td6poo
deviens un ninja avec angular 2
chap2 c
corrigeseance0
opportunites et contraintes de lentrepreunariat feminin a bukavu
opportunites et contraintes de lentrepreunariat feminin a bukavu 1


Sur le même sujet..