User Tools

Site Tools


in202:seance_2:td_2

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
in202:seance_2:td_2 [2021/03/28 07:00]
bmonsuez
in202:seance_2:td_2 [2022/11/18 10:45] (current)
Line 1: Line 1:
 ====== Héritage & Dérivation ====== ====== Héritage & Dérivation ======
  
 +[[in202:​seance_2| Séance n°2]]
  
-==== Question n° 1 ====+===== Contenu du TD =====
  
-A partir de la classe ​''​MyCounter''​ que vous avez développé la semaine, ​une nouvelle ''​MyBiDiCounter''​.  +[[in202:​seance_2:​td_2:​part_I|Partie I: Création d'une classe ​dérivée]]
-Cette classe ​doit ajouter deux méthodes à la classe de base :+
  
-  * Une première méthode decrement qui décrémente le compteur, cette méthode correspond au pseudo-code suivant ​: +[[in202:seance_2:​td_2:​part_II|Partie II: Arbres de dérivation]]
-<​code>​ +
-decrement() +
-    si counter > 0 +
-    counter <- counter – 1 +
-    sinon +
-        counter = max; +
-</​code>​+
  
-  * Une seconde méthode print qui affiche l’état du compteur de la manière suivante.+[[in202:​seance_2:​td_2:​part_III|Partie III: Méthodes masquées & surchargées]]
  
-<​code>​ +[[in202:seance_2:​td_2:​part_IV|Partie IV: Méthodes virtuelles]]
-print() +
-    affiche "​Compteur ​" counter "/"​ max (retour à la ligne) +
-</​code>​+
  
-==== Question n° 1.1 ==== 
  
-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''​. 
- 
-==== Question n° 1.2 ==== 
- 
-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 ** 
-<code cpp> 
-class MyBiDiCounter:​ public MyCounter 
-{    ​ 
-    ... 
-public: 
-    MyBiDiCounter():​ public MyCounter() {} 
-    ... 
-}; 
-</​code>​ 
- 
-De même, il génère automatiquement le constructeur de recopie :    ​ 
- 
-<code cpp> 
-class MyBiDiCounter:​ public MyCounter 
- 
-    ... 
-public: ​   
-    MyBiDiCounter(const MyBiDiCounter&​ aCounter): MyCounter(aCounter) {} 
-    ... 
-}; 
-</​code>​ 
- 
-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)''​. 
- 
-==== Question n°2 ====  
- 
-Tester votre nouveau compteur ''​MyBiDiCounter''​ en utilisant la fonction de test suivante. 
- 
-<code cpp> 
- 
-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();​ 
-    } 
-} 
-</​code>​ 
  
  
in202/seance_2/td_2.1616914844.txt.gz · Last modified: 2021/03/28 07:00 by bmonsuez