Table of Contents

Partie IV : Méthodes virtuelles

TD complet

Question n° 1

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).

Question n° 2

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.

Question n°3

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);
}

Ressources

Code présenté pendant le cours

''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.

Liens vers les éléments syntaxiques C++

Héritage & Dérivation de classe

Contructeurs dans les classes dérivées

Méthodes dans les classe dérivées

Méthodes virtuelles

Troisième partie