This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
in202:seance_2:td_2 [2021/03/28 06:58] bmonsuez created |
in202:seance_2:td_2 [2022/11/18 10:45] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Héritage & Dérivation ====== | ====== Héritage & Dérivation ====== | ||
+ | [[in202:seance_2| Séance n°2]] | ||
- | ==== Question n° 1 ==== | + | ===== Contenu du TD ===== |
- | A partir de la classe ''MyCounter'' que vous avez développé la semaine, une nouvelle ''MyBiDiCounter''. | + | [[in202:seance_2:td_2:part_I|Partie I: Création d'une classe dérivée]] |
- | Cette classe doit ajouter deux méthodes à la classe de base : | + | |
- | * Une première méthode decrement qui décrémente le compteur, cette méthode correspond au pseudo-code suivant : | + | [[in202:seance_2:td_2:part_II|Partie II: Arbres de dérivation]] |
- | <code> | + | |
- | decrement() | + | |
- | si counter > 0 | + | |
- | counter <- counter – 1 | + | |
- | sinon | + | |
- | counter = max; | + | |
- | </code> | + | |
- | * Une seconde méthode print qui affiche l’état du compteur de la manière suivante. | + | [[in202:seance_2:td_2:part_III|Partie III: Méthodes masquées & surchargées]] |
- | <code> | + | [[in202:seance_2:td_2:part_IV|Partie IV: Méthodes virtuelles]] |
- | print() | + | |
- | affiche "Compteur : " counter "/" max (retour à la ligne) | + | |
- | </code> | + | |
- | ==== Question n° 1.1 ==== | ||
- | Ajouter les fonctions membres (méthodes) ''decrement'' et ''print''. | ||
- | |||
- | ==== Question n° 1.2 ==== | ||
- | |||
- | Ajouter les constructeurs permettant de construire une classe ''MyBiDiCounter''. | ||
- | |||
- | En effet, la class ''MyBiDiCounter'' héritant de la classe ''MyCounter'' ne fournit que deux constructeurs automatiquement, le constructeur par défaut ''MyBiDiCounter()'' ainsi que le constructeur de recopie ''MyBiDiCounter(const MyBiDiCounter&)''. Si nous voulons utiliser les constructeurs de ''MyCounter(int)'' et ''MyCounter(int, int)'', il faut redéfinir des constructeurs ''MyBiCounter(int)'' et ''MyBiCounter(int, int)''. | ||
- | |||
- | ==== Question n°2 ==== | ||
- | |||
- | Tester votre nouveau compteur ''MyBiDiCounter'' en utilisant la fonction de test suivante. | ||
- | |||
- | <code cpp> | ||
- | |||
- | void testMyBiDiCounter() | ||
- | { | ||
- | MyBiDiCounter counterA(0, 4) | ||
- | counterA.print(); | ||
- | for(int i=0; i < 6; i++) | ||
- | { | ||
- | counterA.increment(); | ||
- | counterA.print(); | ||
- | } | ||
- | for(int i=0; i < 6; i++) | ||
- | { | ||
- | counterA.decrement(); | ||
- | counterA.print(); | ||
- | } | ||
- | } | ||
- | </code> | ||