Ajouter à la classe BaseCounter
deux nouvelles méthodes virtuelles pures next()
, resp. next(unsigned)
. Ces deux méthodes purement virtuelles ont pour objet d’appeler les méthodes par défaut pour passer à la valeur suivante.
Typiquement, pour un compteur qui compte, ce seront les méthodes increment()
et increment(unsigned)
. Pour un compte qui décompte, ce seront les méthodes decrement()
et decrement(unsigned)
.
Ajouter aux classes ForwardCounter
et BackwardCounter
, deux nouvelles méthodes next()
, resp. next(unsigned)
. Cette méthode next()
(resp. next(unsigned)
) appellera la méthode increment()
, (resp. increment(unsigned)
) pour la classe ForwardCounter
. cette méthode next()
(resp. next(unsigned)
) appellera la méthode decrement()
, resp. decrement(unsigned)
pour la classe BackwardCounter
.
Tester le comportement de vos compteurs à partir du code suivant
void testCounter(BaseCounter& aCounter) { for(int i=0; i < 6; i++) { aCounter.next(); aCounter.print(); } } void testFamilyOfCounters() { ForwardCounter incCounter(0, 4); BackwardCounter decCounter(3, 5); testCounter(incCounter); testCounter(decCounter); }
''part4.cpp'' Fichier principal contient les fonctions de test et le main.
''BaseCounter.hpp'' Définition de la classe de base BaseCounter
.
''ForwardCounter.hpp'' Définition des classes ForwardCounter
et BackwardCounter
.
Héritage & Dérivation de classe
Contructeurs dans les classes dérivées