Nous repartons du code de MyBiDiCounter
tel défini à la fin de la question 1 de la première partie.
Ajouter à la classe MyBiDiCounter
une nouvelle méthode :
increment(unsigned value) counter = (counter + value) mod (max + 1)
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(); } }
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.
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()
.
''part2.cpp'' Fichier principal contient les fonctions de test et le main.
''MyCounter.hpp'' La classe de base MyCounter
telle que définie à la fin de la question 2.
''MyBiDiCounter.hpp'' Définition de la classe étendue MyBiDiCounter
.
Héritage & Dérivation de classe
Contructeurs dans les classes dérivées