User Tools

Site Tools


in204:tds:sujets:td2:part4

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
in204:tds:sujets:td2:part4 [2019/10/01 19:38]
bmonsuez [Question n°1]
in204:tds:sujets:td2:part4 [2022/11/18 10:49] (current)
Line 49: Line 49:
  
 La méthode ''​increment''​ va masquer la classe ''​MyCounter::​increment''​ dans la classe ''​MyAdvCounter''​. Cependant, la méthode ''​increment''​ reste présente, elle n'est pas remplacée, elle est simplement '​cachée'​ ou '​masquée'​. Il sera toujours possible de l'​appeller en préfixant le nom de la fonction ''​increment()''​ par ''​MyCounter::​increment()''​. La méthode ''​increment''​ va masquer la classe ''​MyCounter::​increment''​ dans la classe ''​MyAdvCounter''​. Cependant, la méthode ''​increment''​ reste présente, elle n'est pas remplacée, elle est simplement '​cachée'​ ou '​masquée'​. Il sera toujours possible de l'​appeller en préfixant le nom de la fonction ''​increment()''​ par ''​MyCounter::​increment()''​.
- 
  
 </​hidden>​ </​hidden>​
Line 70: Line 69:
 } }
 </​code>​ </​code>​
 +
 +<hidden Correction>​
 +
 +Le compteur une fois la valeur ''​4''​ atteinte reste à la valeur ''​4''​.
 +
 +</​hidden>​
  
 ==== Question n°3 ==== ==== Question n°3 ====
Line 88: Line 93:
  
 Tester la méthode en passant à la fonction ''​testCounter''​ un compteur de type ''​MyCounter''​ et un compteur de type ''​MyAdvCounter''​. Expliquer le comportement de la fonction pour chacun des types de compteur. Tester la méthode en passant à la fonction ''​testCounter''​ un compteur de type ''​MyCounter''​ et un compteur de type ''​MyAdvCounter''​. Expliquer le comportement de la fonction pour chacun des types de compteur.
 +
 +<hidden Correction>​
 +
 +
 +En fait, c'est la méthode ''​MyCounter::​increment''​ qui est appelé et non pas la méthode ''​MyAdvCounter::​increment''​. Pourquoi donc ?
 +
 +En fait, nous avons transformé un objet de type ''​MyAdvCounter''​ en objet ''​MyCounter''​. De ce fait, ce sont les méthodes visibles et accessibles par ''​MyCounter''​ qui sont appellées. En effet, les méthodes définies dans l'​objet ''​MyAdvCounter''​ ne sont pas visibles et accessibles dans ''​MyCounter'',​ elles sont situés en dehors de la définition de l'​objet. Donc même si l'​objet auquel je fais référence est un objet qui contient des extensions à l'​objet de type ''​MyCounter'',​ il n'est pas possible d'y accéder parce que mon horizon se limite uniquement aux définitions de ''​MyCounter''​.
 +
 +Ce comportement n'est pas sastisfaisant et nous souhaitons souvent de pouvoir remplacer la méthode définie dans la classe ''​MyCounter::​increment''​ par une nouvelle méthode qui prendrait la place de la méthode ''​MyCounter::​increment''​. Nous verrons cela au moment où nous nous intéresserons au polymorphisme.
 +
 +</​hidden>​
  
in204/tds/sujets/td2/part4.1569958723.txt.gz · Last modified: 2019/10/01 19:38 by bmonsuez