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.