Utilisez cette image Shockwave pour vous familiariser avec les différents éléments d'une classe.
Le petit programme "chaise.cpp" vous permettra de voir la chaise en action! Voici le code commenté. Récupéréz le programme et essayez-le en Turbo C++.
#include < stdio.h > #include < conio.h > #include < dos.h > |
Quelques librairies nécessaires: "stdio.h" si vous désirez insérer un "printf" ici et là, "conio.h" afin de pouvoir utiliser "gotoxy" et "cprintf" et "dos.h" afin de pourvoir faire un beep lorsque la chaise est trop haute. |
void beep(void); |
Fonction utilitaire pour effectuer un "beep"... |
class chaise{ private: int PosCour; int PosMax; public: chaise(void){ PosCour = 0; PosMax = 20; } chaise(int initMax){ PosCour = 0; PosMax = initMax; } void monter(void){ PosCour = (PosCour + 1 > PosMax) ? beep(), PosMax : PosCour + 1; } void descendre(void){ PosCour = (PosCour - 1 < 0) ? 0 : PosCour - 1; } void dessiner(void); }; |
La classe "chaise". Un "beep" a été ajouté dans la fonction "monter". Notez l'utilisation de l'opérateur conditionnel (?:) et de la virgule dans cette fonction. La fonction "dessiner" nous servira à voir la chaise en action! Sa définition est présentée à l'extérieure de la classe. |
void chaise::dessiner(void){ int i; clrscr(); gotoxy(5,23); cprintf("XXXXXXXXXXX"); // la base for (i = 22; i > 22 - PosCour; i--) { gotoxy(10, i); cprintf("X"); } gotoxy(5,i); cprintf(" XXXXXXXXX "); // le siege for (int k = i-1; k > i-5; k--){ gotoxy(6, k); cprintf("X"); } } |
La définition de la fonction "dessiner". remarquez l'utilisation de l'opérateur de portée représenté par ::. Il indique au compilateur qu'il s,agit bien d'une fonction appartenant à la classe "chaise". Nous pourrions en effet avoir d'autres fonctions "dessiner". |
void beep(void){ sound(135); delay(500); nosound(); } |
La fonction utilitaire effectuant un "beep". |
void main(void){ chaise X24(10); |
Le main. La chaise X24 est créée grâce au second constructeur. |
X24.dessiner(); getch(); |
X24 se dessine une première fois. Son siège est en position 0. |
for (int i = 0; i < 5; i++) X24.monter(); X24.dessiner(); getch(); |
La chaise monte de 5 cm. |
X24.descendre(); X24.dessiner(); getch(); |
Elle descend de 1 cm. |
X24.descendre(); X24.dessiner(); getch(); X24.monter(); X24.monter(); X24.monter(); X24.dessiner(); getch(); |
Et ainsi de suite. |
X24.monter();X24.dessiner();getch(); X24.monter();X24.dessiner();getch(); X24.monter();X24.dessiner();getch(); X24.monter();X24.dessiner();getch(); X24.monter();X24.dessiner();getch(); } |
À quelle hauteur est donc cette chaise finalement... |