Formation programmation orienté objet (Notion de classe), tutoriel & guide de travaux pratiques en pdf.
NOTION DE CONSTRUCTEUR
Un constructeur est une fonction membre systématiquement exécutée lors de la déclaration d’un objet statique, automatique, ou dynamique.
On ne traitera dans ce qui suit que des objets automatiques.
Dans l’exemple de la classe point, le constructeur remplace la fonction membre initialise.
Exemple (à tester) et exercice II-5:
#include <iostream.h> // constructeur #include <conio.h>
class point { int x,y; public: point(); // noter le type du constructeur (pas de « void ») void deplace(int,int); void affiche(); };
point::point() // initialisation par default {x = 20; y = 10;} // grace au constructeur
void point::deplace(int dx,int dy) {x = x+dx; y = y+dy;}
void point::affiche() {gotoxy(x,y);cout<<« Je suis en « <<x<< » « <<y<<« \n »;}
void tempo(int duree) {float stop ;stop = duree*10000.0;for(;stop>0;stop=stop-1.0);}
void main() { point a,b; // les deux points sont initialisés en 20,10 a.affiche(); tempo(10); a.deplace(17,10); a.affiche(); tempo(15); clrscr(); b.affiche(); getch() ;}
Exemple (à tester) et exercice II-6:
#include <iostream.h> // constructeur #include <conio.h>
class point { int x,y; public: point(int,int); // noter le type du constructeur (pas de « void ») void deplace(int,int); void affiche(); };
point::point(int abs,int ord) // initialisation par default {x = abs; y = ord;} // grace au constructeur, ici paramètres à passer
void point::deplace(int dx,int dy) {x = x+dx; y = y+dy;}
void point::affiche() {gotoxy(x,y);cout<<« Je suis en « <<x<< » « <<y<<« \n »;}
void tempo(int duree) {float stop ;stop = duree*10000.0;for(;stop>0;stop=stop-1.0);}
void main() {
point a(20,10),b(30,20); // les deux points sont initialises:a en 20,10 b en 30,20 a.affiche(); tempo(10); a.deplace(17,10); a.affiche(); tempo(15); clrscr(); b.affiche(); getch() ;}
Exercice II-7: Reprendre l’exercice II-2, en utilisant la classe de l’exercice II-6
Exercice II-8: Reprendre l’exercice II-3, en utilisant la classe de l’exercice II-6
Exercice II-9: Reprendre l’exercice II-4, en utilisant la classe de l’exercice II-6
NOTION DE DESTRUCTEUR
Le destructeur est une fonction membre systématiquement exécutée «à la fin de la vie » d’un objet statique, automatique, ou dynamique. On ne peut pas passer de paramètres par le destructeur.
On ne traitera dans ce qui suit que des objets automatiques.
Exemple (à tester) et exercice II-10:
#include <iostream.h> // destructeur #include <conio.h>
class point { int x,y; public: point(int,int); void deplace(int,int); void affiche(); ~point(); // noter le type du destructeur };
point::point(int abs,int ord) // initialisation par default {x = abs; y = ord;} // grace au constructeur, ici paramètres à passer
void point::deplace(int dx,int dy) {x = x+dx; y = y+dy;}
void point::affiche() {gotoxy(x,y);cout<<« Je suis en « <<x<< » « <<y<<« \n »;}
point::~point() {cout<<« Frapper une touche… »;getch(); cout<<« destruction du point x = »<<x<< » y= »<<y<<« \n »;}
void tempo(int duree) {float stop ;stop = duree*10000.0;for(;stop>0;stop=stop-1.0);} void test() { point u(3,7); u.affiche(); tempo(20); }
void main() {point a(1,4);a.affiche();tempo(20); test(); point b(5,10);b.affiche(); getch() ;}