This is an old revision of the document!
A partir de la classe MyCounter que vous avez développé la semaine, une nouvelle MyBiDiCounter.
Cette classe doit ajouter deux méthodes à la classe de base :
decrement()
si counter > 0
counter <- counter – 1
sinon
counter = max;
print()
affiche "Compteur : " counter "/" max (retour à la ligne)
Ajouter les fonctions membres (méthodes) decrement() et print(). Indiquer si ces méthodes modifient les champs de l'objet ou pas en ajoutant le qualificateur const.
Ajouter les constructeurs permettant de construire une classe MyBiDiCounter.
En fait, il faut faire la distinction entre le constructeur par défaut. Dans ce cas, comme aucun constructeur n'est défini, C++ génère automatiquement le constructeur suivant :
Indication
class MyBiDiCounter: public MyCounter { ... public: MyBiDiCounter(): public MyCounter() {} ... };
De même, il génère automatiquement le constructeur de recopie :
class MyBiDiCounter: public MyCounter { ... public: MyBiDiCounter(const MyBiDiCounter& aCounter): MyCounter(aCounter) {} ... };
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).
Tester votre nouveau compteur MyBiDiCounter en utilisant la fonction de test suivante.
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(); } }