16 | | des tabulations à 2 ou 4 caractères au lieu du defaut de 8. Enfin, n'insérez |
17 | | jamais le caractère ''tabulation'' dans votre code source, configurez votre |
18 | | éditeur favori pour que celui-çi substitue automatiquement des espaces blanc |
| 16 | des tabulations à 2 ou 4 caractères au lieu du defaut de 8. Enfin, n'insérez |
| 17 | jamais le caractère ''tabulation'' dans votre code source, configurez votre |
| 18 | éditeur favori pour que celui-çi substitue automatiquement des espaces blanc |
62 | | Dans le cadre de ce premier TME, nous allons nous contenter de faire de la compilation |
63 | | monolithique. C'est à dire que tout le code de chaque exercice sera contenu dans un |
64 | | seul fichier source, par exemple {{{Box.cpp}}}. L'éxécutable sera créé par compilation |
65 | | de cet unique fichier. |
| 62 | Dans le cadre de ce premier TME, nous allons nous contenter de faire de la |
| 63 | compilation monolithique. C'est à dire que tout le code de chaque exercice sera |
| 64 | contenu dans un seul fichier source, par exemple {{{Box.cpp}}}. L'éxécutable |
| 65 | sera créé par compilation de cet unique fichier. |
75 | | * {{{-g}}} demande d'inclure le code nécessaire pour pouvoir utiliser un débogueur |
76 | | ({{{gdb}}} ou {{{ddd}}}). |
77 | | * {{{-Wall}}} demande d'afficher tous les avertissements. Vous devrez toujours |
78 | | utiliser ce drapeau ({{{flag}}}) et à l'issue de la mise au point, votre programme |
79 | | ne devra générer aucun avertissement. |
| 76 | * {{{-g}}} demande d'inclure le code nécessaire pour pouvoir utiliser un |
| 77 | débogueur ({{{gdb}}} ou {{{ddd}}}). |
| 78 | * {{{-Wall}}} demande d'afficher tous les avertissements. Vous devrez toujours |
| 79 | utiliser ce drapeau ({{{flag}}}) et à l'issue de la mise au point, votre |
| 80 | programme ne devra générer aucun avertissement. |
87 | | * {{{_x1, _y1, _x2, y2}}} : les coordonnées des deux angles de la boite (de type {{{int}}}). |
| 93 | * {{{_x1, _y1, _x2, y2}}} : les coordonnées des deux angles de la boite (de |
| 94 | type {{{int}}}). |
| 95 | |
| 96 | Constructeurs: (''CTOR'') |
| 97 | * {{{Box()}}}, constructeur par défaut. Doit construire une boîte vide. |
| 98 | * {{{Box(const std::string&, int x1, int y1, int x2, int y2)}}}, constructeur |
| 99 | ''ordinaire''. |
| 100 | * {{{Box(const Box&)}}}, constructeur par copie. Pour plus de clarté, |
| 101 | lorsqu'une boite sera copiée on s'autorisera à en modifier le nom en y |
| 102 | ajoutant le suffixe {{{"_c"}}}. |
| 103 | |
| 104 | Destructeur: (''DTOR'') |
| 105 | * {{{~Box()}}}, destructeur (unique). |
| 106 | |
| 107 | Accesseurs: (''accessors'') |
| 108 | * {{{getName()}}} |
| 109 | * {{{getX1()}}} |
| 110 | * {{{getY1()}}} |
| 111 | * {{{getX2()}}} |
| 112 | * {{{getY2()}}} |
| 113 | * {{{isEmpty()}}} |
| 114 | * {{{intersection(const Box&)}}} |
| 115 | * {{{print(std::ostream&)}}} : affiche l'état de la {{{Box}}} dans un flux, on |
| 116 | choisi le format suivant: {{{<"NAME" x1 y1 x2 y2>}}}. |
| 117 | |
| 118 | Modificateurs: (''mutators'') |
| 119 | * {{{makeEmpty()}}} |
| 120 | * {{{inflate(int dxy)}}} |
| 121 | * {{{inflate(int dx, int dy)}}} |
| 122 | * {{{inflate(int dx1, int dy1, int dx2, int dy2)}}} |
| 123 | * {{{getIntersection(const Box&)}}} |
| 124 | |
| 125 | Afin de pouvoir bien suivre les appels aux constructeurs & destructeurs durant |
| 126 | l'éxécution du programme, nous allons ajouter des affichages dans les corps de |
| 127 | ces fonctions. Ils devront afficher: (huit espaces blancs en début de ligne) |
| 128 | |
| 129 | {{{ |
| 130 | Box::Box() <"NAME" x1 y1 x2 y2> |
| 131 | Box::Box(const std::string&, ...) <"NAME" x1 y1 x2 y2> |
| 132 | Box::Box(const Box&) <"NAME" x1 y1 x2 y2> |
| 133 | Box::~Box() <"NAME" x1 y1 x2 y2> |
| 134 | }}} |