Bases de la programmation (trace de pseudo-code)
La classe Counter donne à chaque instance sa propre variable membre entière count (0 à la création), et sa méthode inc() ajoute 1 à son propre count. Une variable de type Counter contient une référence à une instance, et non l'instance elle-même. Quelle est la valeur de x après l'exécution du programme suivant ?
Counter: c1 ← new Counter()
Counter: c2 ← c1
c1.inc()
c2.inc()
c2 ← new Counter()
c2.inc()
integer: x ← c1.count × 10 + c2.count
- A11
- B21
- C33
Afficher la réponse et l'explication
Réponse : B. 21
c2 ← c1 ne copie que la référence : c1 et c2 désignent la même instance. c1.inc() et c2.inc() incrémentent donc le même count, et c1.count passe à 2. L'affectation suivante c2 ← new Counter() fait désigner à c2 une nouvelle instance, et le c2.inc() qui suit ne met à 1 que le count de la nouvelle instance. x = 2 × 10 + 1 = 21.
Continuer : 9 autres questions sur Bases de la programmation (trace de pseudo-code)