====== Partie III : Méthodes masquées ====== [[in202:seance_2:td_2|TD complet]] Nous repartons du code de ''MyBiDiCounter'' tel défini à la fin de la question 1 de la [[.:part_i|première partie]]. ==== Question n°1 === Ajouter à la classe ''MyBiDiCounter'' une nouvelle méthode : increment(unsigned value) counter = (counter + value) mod (max + 1) ==== Question n°2 ==== Tester le bon fonctionnement de cette classe à partir du code suivant : void testNewIncMethod() { MyBiDiCounter bidiCounter1(0, 5); for(unsigned i = 0; i <= 5; i++) { bidiCounter1.increment(5); bidiCounter1.print(); } } ==== Question n°3 ==== Tester le code suivant. void testOldIncMethod() { MyBiDiCounter bidiCounter1(0, 5); for(unsigned i = 0; i <= 5; i++) { bidiCounter1.increment(); bidiCounter1.print(); } } Expliquer pourquoi cela ne fonctionne pas ? Proposer une modification de l’appel pour que cela puisse fonctionner. ==== Question n°4 ==== Modifier la classe ''MyBiDiCounter'' de manière à ce que les deux méthodes soient accessibles, à la fois la méthode ''increment()'' et la méthode ''increment(unsigned)''. Tester ensuite que le code initial de la fonction ''testOldIncMethod()''. ===== Ressources ===== ==== Code présenté pendant le cours ==== {{https://perso.ensta-paris.fr/~bmonsuez/Media/code/in202/2021/td2/part3/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/part3/MyCounter.hpp|''MyCounter.hpp''}} La classe de base ''MyCounter'' telle que définie à la fin de la question 2. {{https://perso.ensta-paris.fr/~bmonsuez/Media/code/in202/2021/td2/part3/MyBiDiCounter.hpp|''MyBiDiCounter.hpp''}} Définition de la classe étendue ''MyBiDiCounter''. ==== 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 classes dérivées]] [[cpp:syntax:functions:overload|Surcharges des fonctions en C++]] ===== Navigation ===== [[.:part_ii|Deuxième partie]] [[.:part_iv|Quatrième partie]]