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(); } }
''part1.cpp'' Fichier principal contient les fonctions de test et le main.
''MyCounter.hpp'' Définition de la classe de base MyCounter
.
''MyBiDiCounter.hpp'' Définition de la classe dérivée MyBiDiCounter
.