Table of Contents

Partie III : Méthodes masquées

TD complet

Nous repartons du code de MyBiDiCounter tel défini à la fin de la question 1 de la première partie.

Question n°1

Ajouter à la classe MyBiDiCounter une nouvelle méthode :

increment(unsigned value)
        counter = (counter + value) mod (max + 1)

Question n°2

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

Question n°3

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.

Question n°4

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

Ressources

Code présenté pendant le cours

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

Liens vers les éléments syntaxiques C++

Héritage & Dérivation de classe

Contructeurs dans les classes dérivées

Méthodes dans les classes dérivées

Surcharges des fonctions en C++

Deuxième partie Quatrième partie