====== 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]]