UdMHaut
UdMBAS

IFT1166
Programmation Orientée Objet avec C++

Département d'informatique et de recherche opérationnelle

Direction de l'enseignement de service en informatique
 

Image C++
 
Automne 2003

Accueil

Professeurs et
Démonstrateurs

Horaires et locaux

Notes de cours

Cours
après Cours

Démonstrations
et devoirs

Examens

Liens utiles

Au sujet du
livre de cours

Consultez vos notes

Foire aux questions
(FAQ)

Sessions antérieures

Longueuil
sections L&M

  Démonstration #6  
 
Dernière mise à jour : mer 22 oct 2003 20:19:41 EDT
 

Buts:

  • Quelques astuces de programmation.
  • Les membres statiques
  • Les fonctions membres
  • l'autoréférence THIS
  • constructeurs, destructeurs, constructeurs de recopie

Exercice 1 (solution: demo06exo1sol.cpp)

Écrire la définition de la classe livres ayant :

  • Deux membres privés : auteur (du livre) et nom (du livre);
  • Un constructeur pour initialiser les membres privés, à titre d'exemple par:
    • Auteur : Albert Camus & Arthur Koestler
    • Nom: reflexions sur la peine capitale
  • Un destructeur;
  • Deux fonctions membres publiques, la première permet d'afficher en sortie les membres privés, la seconde affiche ces même membre mais cette fois en utilisant le pointeur autoréférence THIS.

Exercice 2 (solution: demo06exo2sol.cpp)

Écrire la définition de la classe pile_entier permettant de gérer une pile d'entiers. Ces derniers seront conservés dans un tableau d'entiers alloués dynamiquement. La classe comportera les fonctions membres suivantes:

  • pile_entier (int n): Constructeur allouant dynamiquement un emplacement de n entiers,
  • pile_entier (): Constructeur sans argument allouent par défaut un emplacement de vingt entiers,
  • ~pile_entier (): Destructeur,
  • void empile (int p): Ajouter l'entier p sur la pile,
  • int depile (): Fournit la valeur de l'entier situé en haut de la pile, en le supprimant de la pile,
  • int pleine (): Fournit 1, si la pile est pleine, 0 sinon,
  • int vide (): Fournit 1 si la pile est vide, 0 sinon,

Définir une fonction main utilisant des objets automatiques et dynamiques du type pile_entier défini précédemment.

Mettre en évidence les problèmes posés par des déclarations de la forme:

  • pile_entier a(10);
  • pile_entier b = a;

Ajouter à la classe pile_entier le constructeur de recopie permettant de régler les problèmes précédents.

Exercice 3 (solution: demo06exo3sol.cpp)

Quel sera le résultat de l'execution du programme suivant demo06exo3.cpp.




pift1166@iro.umontreal.ca
[top]