corrigéTD7POO .pdf


Nom original: corrigéTD7POO.pdf
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:40, depuis l'adresse IP 41.224.x.x. La présente page de téléchargement du fichier a été vue 1124 fois.
Taille du document: 11 Ko (2 pages).
Confidentialité: fichier public


Aperçu du document


Correction TD7: héritage
#include <iostream.h>
//*************** classe forme3D *******************
class Forme3D
{
protected:
float hauteur;
public:
Forme3D(float h=0):hauteur(h) {}
virtual ~Forme3D() {}
float Volume() const
{
return hauteur*SurfaceSection();
}
virtual float SurfaceSection() const=0; //méth. Virtuelle pure
virtual void Affiche() const=0; // méth. Virtuelle pure
};
//**************** classe Parallélépipède ******************
class Parallelepipede: public Forme3D
{
protected:
float longueur, largeur;
public:
Parallelepipede(float h=0,float lo=0,float la=0)
:Forme3D(h),longueur(lo),largeur(la) {}
~Parallelepipede() {}
float SurfaceSection() const
{
return longueur*largeur;
}
void Affiche() const
{
cout<<"Parallelepipede:"<<endl;
cout<<" longueur= "<<longueur<<endl;
cout<<" largeur= "<<largeur<<endl;
cout<<" hauteur= "<<hauteur<<endl;
}
};
//**************** classe cylindre ******************
class cylindre: public Forme3D
{
protected:
float rayon;
public:
cylindre(float h=0,float r=0)
:Forme3D(h),rayon(r) {}
~cylindre() {}
float SurfaceSection() const
{
return rayon*rayon*3.1415;

}
void Affiche() const
{
cout<<"Cylindre:"<<endl;
cout<<" rayon= "<<rayon<<endl;
cout<<" hauteur= "<<hauteur<<endl;
}
};
//**************** classe EnsFormeD ******************
class EnsFormeD
{
private:
Forme3D* * Ens;
Int taille, nbre ;
public:
EnsFormeD(int n)
{
Taille = n ;
Ens = new Forme3D*[taille] ;
Nbre = 0 ;
}
~EnsFormeD()
{
for(int i=0;i<taille; i++)
delete Ens[i];
delete [] Ens ;
}
void Ajouter( Forme3D *f)
{
Tab[nbre] = f ;
Nbre ++ ;
}
int NbreForme() const { return nbre; }
Forme3D & operator[] (int i) { return *Ens[i]; }
float VolumeTotal()
{
Float vol=0;
for (int i=0;i<taille; i++)
volume+=(*Tab[i]).volume();
return vol;
}
};
//************************* fonction main **********
void main()
{
EnsFormeD e;
e.Ajouter(new Parallelepipede(30,50,60));
e.Ajouter(new cylindre(35,70));
for(int i=0; i<e.NbreForme(); i++)
e[i].Affiche();
}


corrigéTD7POO.pdf - page 1/2
corrigéTD7POO.pdf - page 2/2


Télécharger le fichier (PDF)

corrigéTD7POO.pdf (PDF, 11 Ko)

Télécharger
Formats alternatifs: ZIP







Documents similaires


corrigetd7poo
sadfi0z
pages 5 et 6
2 04 corsage agrandir devant en largeur et hauteur
1 prise des mesures
probleme un sablier bizarre maths 179

Sur le même sujet..