Chapitre 3 Programmation Objet en C cl Entier
Chapitre 3 : Programmation Objet en C++ cl. Entier. h class Entier { int i; int lit_i(void); void Ecrit_i(int); }; indispensable AP 4 - Programmation Orientée Objet cl. Entier. cpp int Entier: : lit_i(void) { return i; } cl. Entier. h void Ecrit_i(int i. Val) { i=i. Val; }
Chapitre 3 : Programmation Objet en C++ 2 possibilitées : public ou private. public: accès total aux données et aux méthodes membres private : accès réservé aux méthodes membres de la class struct class en C : en C++: juste Donnée données + Méthode only public AP 4 - Programmation Orientée Objet en C++: données + Méthode Private ou public
Chapitre 3 : Programmation Objet en C++ class Client { private : //pas necessaire char Nom[20], Prenom[25]; int Date, Solde; public : bool Dans_le_Rouge(void) { return (Solde<0); } bool Bon_Client(void) { return (date<1996); } }; AP 4 - Programmation Orientée Objet int main () { Clientelle[100]; //tableau d'objets for (int i=0; 1<100; i++) { if(Clientelle[i]. Dans_le_Rouge()) cout << "Il est dans le rouge!"; } }
Chapitre 3 : Programmation Objet en C++ Le constructeur porte le même nom que la classe. Le destructeur idem sauf qu'il est précéder d'un tilde '~'. cl. Chaine. h class Chaine { char * s; public : Chaine(void); Chaine(int); ~Chaine(void); }; AP 4 - Programmation Orientée Objet cl. Chaine. cpp #include "cl. Chaine. h" Chaine: : Chaine(void); { s=NULL; } Chaine: : Chaine(int Taille) { s=new char[Taille+1]; S=[0]='Ø'; } Chaine: : ~Chaine(void) { if(s) delete[] s; } pgprinc. cpp "include "cl. Chaine. h" int main() { Chaine s 1; Chaine S 2(100); } Liberation dynamique de tout le contenu du pointeur
Chapitre 3 : Programmation Objet en C++ Ordre a retenir : -Création de l'espace mémoire pour la variable - Appel du constructeur(puis allocation dynamique si nécessaire) - Appel du destructeur(puis libération si nécessaire) - Vidage de la variable dans la pile AP 4 - Programmation Orientée Objet
Chapitre 3 : Programmation Objet en C++ class cl. Phy { //Donnees //Methodes }; AP 4 - Programmation Orientée Objet cl. Phy X 1; cl. Phy X 2(X 1); On fait appel au constructeur par recopie par défaut. Il prend chacune des données de X 1 et les recopie dans X 2
Chapitre 3 : Programmation Objet en C++ class cl. Elt { int L, C, V; cl. Elt *p. Suiv; } Cl. Elt X 1; clelt X 2(X 1); AP 4 - Programmation Orientée Objet X 1
Chapitre 3 : Programmation Objet en C++ class cl. Elt { int L, C, V; cl. Elt *p. Suiv; } X 1 L C V Cl. Elt X 1; clelt X 2(X 1); AP 4 - Programmation Orientée Objet
Chapitre 3 : Programmation Objet en C++ class cl. Elt { int L, C, V; cl. Elt *p. Suiv; } X 1 L C V Cl. Elt X 1; clelt X 2(X 1); AP 4 - Programmation Orientée Objet X 2
Chapitre 3 : Programmation Objet en C++ class cl. Elt { int L, C, V; cl. Elt *p. Suiv; } X 1 L C V Cl. Elt X 1; clelt X 2(X 1); X 2 L C V AP 4 - Programmation Orientée Objet
Chapitre 3 : Programmation Objet en C++ class cl. Elt { int L, C, V; cl. Elt *p. Suiv; } X 1 L C V Cl. Elt X 1; clelt X 2(X 1); X 2 L C V AP 4 - Programmation Orientée Objet c'est une recopie en profondeur, pas par défaut
Chapitre 3 : Programmation Objet en C++ il s'appelle comme le nom de la classe : cl. Elt (const cl. Elt & X); en général constructeur par recopie, destructeur et opérateur d'affectation vont ensemble. AP 4 - Programmation Orientée Objet
Chapitre 3 : Programmation Objet en C++ Classe qui ne contient pas de pointeur : dans ce cas, constructeur par recopie, destructeur et opérateur par défaut. class Simple { int X; bool Y; public: }X 1; Simple X 2(X 1); Simple X 3; X 3=X 1; AP 4 - Programmation Orientée Objet X 1 x 1 y 2
Chapitre 3 : Programmation Objet en C++ Classe qui ne contient pas de pointeur : dans ce cas, constructeur par recopie, destructeur et opérateur par défaut. class Simple { int X; bool Y; public: }X 1; Simple X 2(X 1); Simple X 3; X 3=X 1; AP 4 - Programmation Orientée Objet X 1 x 1 X 2 y 2 x 1 y 2
Chapitre 3 : Programmation Objet en C++ Classe qui ne contient pas de pointeur : dans ce cas, constructeur par recopie, destructeur et opérateur par défaut. class Simple { int X; bool Y; public: X 1 x 1 X 2 y 2 x 1 y 2 X 3 x y }X 1; Simple X 2(X 1); Simple X 3; X 3=X 1; AP 4 - Programmation Orientée Objet
Chapitre 3 : Programmation Objet en C++ Classe qui ne contient pas de pointeur : dans ce cas, constructeur par recopie, destructeur et opérateur par défaut. class Simple { int X; bool Y; public: X 1 x 1 X 2 y 2 x 1 y 2 X 3 x 1 y 2 }X 1; Simple X 2(X 1); Simple X 3; X 3=X 1; AP 4 - Programmation Orientée Objet
Chapitre 3 : Programmation Objet en C++ un pointeur surcharge d'opérateur class Compose { int X; bool Y; int *p; public: }X 1; Simple X 2(X 1); Simple X 3; X 3=X 1; AP 4 - Programmation Orientée Objet X 1 x 1 y 2 p
Chapitre 3 : Programmation Objet en C++ un pointeur surcharge d'opérateur class Compose { int X; bool Y; int *p; public: }X 1; Simple X 2(X 1); Simple X 3; X 3=X 1; AP 4 - Programmation Orientée Objet X 1 x 1 y 2 p X 2 x y p
Chapitre 3 : Programmation Objet en C++ un pointeur surcharge d'opérateur class Compose { int X; bool Y; int *p; public: }X 1; Simple X 2(X 1); Simple X 3; X 3=X 1; AP 4 - Programmation Orientée Objet X 1 x 1 y 2 p X 2 x 1 y 2 p
Chapitre 3 : Programmation Objet en C++ un pointeur surcharge d'opérateur class Compose { int X; bool Y; int *p; public: }X 1; Simple X 2(X 1); Simple X 3; X 3=X 1; AP 4 - Programmation Orientée Objet X 1 x 1 y 2 p X 2 x y p
Chapitre 3 : Programmation Objet en C++ un pointeur surcharge d'opérateur class Compose { int X; bool Y; int *p; public: }X 1; Simple X 2(X 1); Simple X 3; X 3=X 1; AP 4 - Programmation Orientée Objet X 1 x 1 y 2 p X 2 x 1 y 2 p
Chapitre 3 : Programmation Objet en C++ class cl. X { int i; this est un pointeur qui pointe vers l'objet en cours. il est constant. public: F(); }A; A. F(); clx: : F(); { i=0; // this->i=0; } AP 4 - Programmation Orientée Objet il est possible de transformer ce pointeur constant en un pointeur constant sur des données constantes pour chaque fonction membre
- Slides: 37