Changes between Version 4 and Version 5 of 2011CaoTme1


Ignore:
Timestamp:
Feb 17, 2011, 6:15:50 PM (14 years ago)
Author:
jpc
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 2011CaoTme1

    v4 v5  
    8585Nous allons implémenter la classe {{{Box}}} présentée en cours.
    8686
     87[[Image(box-1.png,30%,align=center)]]
     88
    8789'''Attention''', dans  le récapitulatif  suivant, les prototypes  des fonctions
    8890membre ne sont  pas forcément donnés de façon exacte.  Votre travail consiste à
     
    9395* {{{_x1, _y1,  _x2, y2}}} :  les coordonnées des  deux angles de la  boite (de
    9496  type {{{int}}}).
     97
     98Les coordonnées  {{{_x1}}} et {{{_y1}}} (respectivement  {{{_y1}}} et {{{_y2}}}
     99seront  maintenues  ordonnées telles  que  {{{_x1  <=  _x2}}}. Une  boite  sera
     100considérée comme vide si {{{_x1 > _x2}}} ou {{{_y1 > _y2}}}.
    95101
    96102Constructeurs: (''CTOR'')
     
    135141
    136142
     143=== Question 1 ===
     144
     145Implanter la classe {{{Box}}} comme  spécifié précedemment. Pour la valider, on
     146utilisera le programme de test  fourni çi-après. L'éxécution de ce programme va
     147produire une  trace d'éxecution indiquant  à quel endroits les  contructeurs et
     148destructeurs sont appelés. Commentez la  trace en mettant en correspondance les
     149appels et les instructions du programme.
     150
    137151Programme de test à utiliser pour valider votre classe:
    138152[[Image(BoxMain.png,75%,align=center)]]
     153
     154
     155
     156=== Question 2 ===
     157
     158Vérification des droits d'accès: tour à tour, déplacer chaque constructeur dans
     159la partie {{{private}}}  de la classe {{{Box}}}. Recompiler,  que se passe-t-il
     160et pourquoi.
     161
     162
     163=== Question 3 ===
     164
     165On  désire ajouter  une nouvelle  méthode  {{{getCenter()}}} à  la classe,  qui
     166renvoie  les  coordonnées {{{(x,y)}}}  du  centre  de  la boite.  Proposer  une
     167implantation de cette méthode ainsi qu'un petit programme de test.
     168
     169
     170=== Question 4 ===
     171
     172Exercice de style:
     173
     174Pour illustrer les concepts d'{{{API}}} et d'encapsulation, nous allons changer
     175la 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
     180Réimplémenter  la   classe  en   utilisant  ces  nouveaux   attributs.  Quelles
     181conséquences cela a-t-il sur le programme de test?