Changes between Version 4 and Version 5 of 2011CaoTme1
- Timestamp:
- Feb 17, 2011, 6:15:50 PM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
2011CaoTme1
v4 v5 85 85 Nous allons implémenter la classe {{{Box}}} présentée en cours. 86 86 87 [[Image(box-1.png,30%,align=center)]] 88 87 89 '''Attention''', dans le récapitulatif suivant, les prototypes des fonctions 88 90 membre ne sont pas forcément donnés de façon exacte. Votre travail consiste à … … 93 95 * {{{_x1, _y1, _x2, y2}}} : les coordonnées des deux angles de la boite (de 94 96 type {{{int}}}). 97 98 Les coordonnées {{{_x1}}} et {{{_y1}}} (respectivement {{{_y1}}} et {{{_y2}}} 99 seront maintenues ordonnées telles que {{{_x1 <= _x2}}}. Une boite sera 100 considérée comme vide si {{{_x1 > _x2}}} ou {{{_y1 > _y2}}}. 95 101 96 102 Constructeurs: (''CTOR'') … … 135 141 136 142 143 === Question 1 === 144 145 Implanter la classe {{{Box}}} comme spécifié précedemment. Pour la valider, on 146 utilisera le programme de test fourni çi-après. L'éxécution de ce programme va 147 produire une trace d'éxecution indiquant à quel endroits les contructeurs et 148 destructeurs sont appelés. Commentez la trace en mettant en correspondance les 149 appels et les instructions du programme. 150 137 151 Programme de test à utiliser pour valider votre classe: 138 152 [[Image(BoxMain.png,75%,align=center)]] 153 154 155 156 === Question 2 === 157 158 Vérification des droits d'accès: tour à tour, déplacer chaque constructeur dans 159 la partie {{{private}}} de la classe {{{Box}}}. Recompiler, que se passe-t-il 160 et pourquoi. 161 162 163 === Question 3 === 164 165 On désire ajouter une nouvelle méthode {{{getCenter()}}} à la classe, qui 166 renvoie les coordonnées {{{(x,y)}}} du centre de la boite. Proposer une 167 implantation de cette méthode ainsi qu'un petit programme de test. 168 169 170 === Question 4 === 171 172 Exercice de style: 173 174 Pour illustrer les concepts d'{{{API}}} et d'encapsulation, nous allons changer 175 la représentation interne de la {{{Box}}}. Les attributs deviennent: 176 177 * {{{_x}}} et {{{_y}}}: le centre de la boite. 178 * {{{_width}}} et {{{_height}}} : la taille de la boite. 179 180 Réimplémenter la classe en utilisant ces nouveaux attributs. Quelles 181 conséquences cela a-t-il sur le programme de test?