Table of Contents

Partie I – Création du compteur en C++

TD1

Question n° 0

Lancer votre environnement de développement préféré.

Question n°1

Créer un ensemble de fichier counter.cpp et conter.hpp pour définir votre classe de base « MyCounter ». Au départ, seul le fichier counter.hpp contient le code suivant :

struct MyCounter
{
    unsigned counter;
    unsigned max;
 
    unsigned getCounter() const {
      return counter;
    }
    unsigned getMax() const {
      return max;
    }
 
    void increment() {
      counter ++;
      if(counter > max)
        counter = 0;
    }
 
    void reset() {
      counter = 0;
    }
 
    void set(unsigned value) {
      counter = (value <= max) ? value : counter;
    }
 
    void setMax(unsigned value) {
       if(counter >= value)
         counter = 0;
         max = value;;
    }
};

Question n°2

Créer une fonction useObjectA() dans le fichier main.cpp reprenant le code présenté sur les transparents :

void useObjectA() {
    MyCounter Counter1;
    MyCounter Counter2;
    Counter1.setMax(2);
    Counter2.setMax(4);
    Counter1.reset();
    Counter2.reset();
    for(unsigned i = 0; i <= 5; i++) {
      std::cout 
	<< "Valeur des compteurs (" 	<< Counter1.counter 
	<< ", " << Counter2.counter 	<< ")" << std::endl;
        Counter1.increment();
        Counter2.increment();
    }
}

Question n°3

Vérifier que le code de useObjectA() fonctionne correctement.

Question n°4

Le code des fonctions membres a été écrit directement dans la struct MyCounter.

Modifier le code pour séparer la déclaration des fonctions membres de leurs implantations.