====== Arbres de dérivation ====== [[in202:seance_2:td_2|TD complet]] ==== Question n°1 ==== La classe ''MyBiDiCounter'' ajoute la fonction ''decrement'' à la classe ''MyCounter''. En fait, nous pouvons définir une famille de compteur : * Le compteur ''ForwardCounter'' qui compte de 0 à max et repars à 0. * Le compteur ''BackwardCounter'' qui compte max à 9 et repars à max. === Question n°1.1 === Faites la liste des méthodes, champs pouvant être partagés et la liste des méthodes et champs propres à chacune des classes. === Question n°1.2 === Implanter la classe ''BaseCounter''. On s’inspirera fortement de la classe ''MyCounter'' déjà définie. === Question n°1.3 === Implanter les classes ''ForwardCounter'', ''BackwardCounter'' qui héritent chacune de la classe ''BaseCounter''. ===== Question n°2 ===== Tester le comportement de vos compteurs à partir du code suivant void testFamilyOfCounters() { ForwardCounter incCounter(0, 4); BackwardCounter decCounter(0, 3); for(int i=0; i < 6; i++) { incCounter.increment(); incCounter.print(); decCounter.decrement(); decCounter.print(); } } ===== Ressources ===== ==== Code présenté pendant le cours ==== {{https://perso.ensta-paris.fr/~bmonsuez/Media/code/in202/2021/td2/part2/part2.cpp|''part2.cpp''}} Fichier principal contient les fonctions de test et le main. {{https://perso.ensta-paris.fr/~bmonsuez/Media/code/in202/2021/td2/part2/BaseCounter.hpp|''BaseCounter.hpp''}} Définition de la classe de base ''BaseCounter''. {{https://perso.ensta-paris.fr/~bmonsuez/Media/code/in202/2021/td2/part2/ForwardCounter.hpp|''ForwardCounter.hpp''}} Définition des classes ''ForwardCounter'' et ''BackwardCounter''. ==== Liens vers les éléments syntaxiques C++ ==== [[cpp:syntax:class:deriving|Héritage & Dérivation de classe]] [[cpp:syntax:class:deriving:constructor|Contructeurs dans les classes dérivées]] [[cpp:syntax:class:deriving:methods|Méthodes dans les classe dérivées]] ===== Navigation ===== [[.:part_i|Première Partie]] [[.:part_iii|Troisième Partie]]