1 / 37

3.1 - Notion de classe

Chapitre 3 : Programmation Objet en C++. 3.1 - Notion de classe. 3.1.1 - Déclaration et Définition de classe. clEntier.cpp. clEntier.h. clEntier.h. class Entier { int i; int lit_i(void); void Ecrit_i(int); };. int Entier::lit_i(void) { return i; }.

iniko
Download Presentation

3.1 - Notion de classe

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapitre 3 : Programmation Objet en C++ 3.1 - Notion de classe 3.1.1 - Déclaration et Définition de classe clEntier.cpp clEntier.h clEntier.h class Entier { int i; int lit_i(void); void Ecrit_i(int); }; int Entier::lit_i(void) { return i; } void Ecrit_i(int iVal) { i=iVal; } indispensable AP4 - Programmation Orientée Objet

  2. Chapitre 3 : Programmation Objet en C++ 3.1 - Notion de classe 3.1.2 - Encupsulation de données 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 : juste Donnée en C++: données + Méthode only public en C++: données + Méthode Private ou public AP4 - Programmation Orientée Objet

  3. Chapitre 3 : Programmation Objet en C++ 3.1 - Notion de classe 3.1.2 - Encupsulation de données 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); } }; int main () { Client Clientelle[100]; //tableau d'objets for (int i=0;1<100;i++) { if(Clientelle[i].Dans_le_Rouge()) cout << "Il est dans le rouge!"; } } AP4 - Programmation Orientée Objet

  4. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.1 - Définition Le constructeur porte le même nom que la classe. Le destructeur idem sauf qu'il est précéder d'un tilde '~'. clChaine.cpp pgprinc.cpp clChaine.h class Chaine { char * s; public : Chaine(void); Chaine(int); ~Chaine(void); }; #include "clChaine.h" Chaine::Chaine(void); { s=NULL; } Chaine::Chaine(int Taille) { s=new char[Taille+1]; S=[0]='\Ø'; } Chaine::~Chaine(void) { if(s) delete[] s; } "include "clChaine.h" int main() { Chaine s1; Chaine S2(100); } Liberation dynamique de tout le contenu du pointeur AP4 - Programmation Orientée Objet

  5. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.1 - Définition • 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 AP4 - Programmation Orientée Objet

  6. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie class clPhy { //Donnees //Methodes }; clPhy X1; clPhy X2(X1); On fait appel au constructeur par recopie par défaut. Il prend chacune des données de X1 et les recopie dans X2 AP4 - Programmation Orientée Objet

  7. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie X1 class clElt { int L,C,V; clElt *pSuiv; } ClElt X1; clelt X2(X1); AP4 - Programmation Orientée Objet

  8. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie X1 class clElt { int L,C,V; clElt *pSuiv; } ClElt X1; clelt X2(X1); AP4 - Programmation Orientée Objet

  9. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie X1 class clElt { int L,C,V; clElt *pSuiv; } ClElt X1; clelt X2(X1); X2 AP4 - Programmation Orientée Objet

  10. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie X1 class clElt { int L,C,V; clElt *pSuiv; } ClElt X1; clelt X2(X1); X2 AP4 - Programmation Orientée Objet

  11. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie X1 class clElt { int L,C,V; clElt *pSuiv; } ClElt X1; clelt X2(X1); X2 c'est une recopie en profondeur, pas par défaut AP4 - Programmation Orientée Objet

  12. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie il s'appelle comme le nom de la classe : clElt (const clElt & X); en général constructeur par recopie, destructeur et opérateur d'affectation vont ensemble. AP4 - Programmation Orientée Objet

  13. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie Classe qui ne contient pas de pointeur : dans ce cas, constructeur par recopie, destructeur et opérateur par défaut. X1 class Simple { int X; bool Y; public: }X1; Simple X2(X1); Simple X3; X3=X1; AP4 - Programmation Orientée Objet

  14. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie Classe qui ne contient pas de pointeur : dans ce cas, constructeur par recopie, destructeur et opérateur par défaut. X1 class Simple { int X; bool Y; public: }X1; Simple X2(X1); Simple X3; X3=X1; X2 AP4 - Programmation Orientée Objet

  15. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie Classe qui ne contient pas de pointeur : dans ce cas, constructeur par recopie, destructeur et opérateur par défaut. X1 class Simple { int X; bool Y; public: }X1; Simple X2(X1); Simple X3; X3=X1; X2 X3 AP4 - Programmation Orientée Objet

  16. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie Classe qui ne contient pas de pointeur : dans ce cas, constructeur par recopie, destructeur et opérateur par défaut. X1 class Simple { int X; bool Y; public: }X1; Simple X2(X1); Simple X3; X3=X1; X2 X3 AP4 - Programmation Orientée Objet

  17. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie un pointeur  surcharge d'opérateur X1 class Compose { int X; bool Y; int *p; public: }X1; Simple X2(X1); Simple X3; X3=X1; AP4 - Programmation Orientée Objet

  18. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie un pointeur  surcharge d'opérateur X1 class Compose { int X; bool Y; int *p; public: }X1; Simple X2(X1); Simple X3; X3=X1; X2 AP4 - Programmation Orientée Objet

  19. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie un pointeur  surcharge d'opérateur X1 class Compose { int X; bool Y; int *p; public: }X1; Simple X2(X1); Simple X3; X3=X1; X2 AP4 - Programmation Orientée Objet

  20. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie un pointeur  surcharge d'opérateur X1 class Compose { int X; bool Y; int *p; public: }X1; Simple X2(X1); Simple X3; X3=X1; X2 X2 AP4 - Programmation Orientée Objet

  21. Chapitre 3 : Programmation Objet en C++ 3.2 - Constructeur et Destructeur 3.2.2 - Constructeur par recopie un pointeur  surcharge d'opérateur X1 class Compose { int X; bool Y; int *p; public: }X1; Simple X2(X1); Simple X3; X3=X1; X2 X2 AP4 - Programmation Orientée Objet

  22. Chapitre 3 : Programmation Objet en C++ 3.3 - Complément sur les classes 3.3.1 - Pointeur this class clX { int i; public: F(); }A; A.F(); clx::F(); { i=0;//  this->i=0; } this est un pointeur qui pointe vers l'objet en cours. il est constant. il est possible de transformer ce pointeur constant en un pointeur constant sur des données constantes pour chaque fonction membre AP4 - Programmation Orientée Objet

More Related