La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

AP4 - Programmation Orientée Objet Chapitre 3 : Programmation Objet en C++ class Entier { int i; int lit_i(void); void Ecrit_i(int); }; int Entier::lit_i(void)

Présentations similaires


Présentation au sujet: "AP4 - Programmation Orientée Objet Chapitre 3 : Programmation Objet en C++ class Entier { int i; int lit_i(void); void Ecrit_i(int); }; int Entier::lit_i(void)"— Transcription de la présentation:

1 AP4 - Programmation Orientée Objet Chapitre 3 : Programmation Objet en C++ 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; } clEntier.h clEntier.cppclEntier.h indispensable

2 AP4 - Programmation Orientée Objet Chapitre 3 : Programmation Objet en C++ structclass en C : juste Donnée en C++: données + Méthode only public en C++: données + Méthode Private ou public 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

3 AP4 - Programmation Orientée Objet 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); } }; 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!"; }

4 AP4 - Programmation Orientée Objet 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 '~'. 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); } clChaine.h clChaine.cpppgprinc.cpp Liberation dynamique de tout le contenu du pointeur

5 AP4 - Programmation Orientée Objet 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

6 AP4 - Programmation Orientée Objet Chapitre 3 : Programmation Objet en C++ 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

7 AP4 - Programmation Orientée Objet Chapitre 3 : Programmation Objet en C++ class clElt { int L,C,V; clElt *pSuiv; } ClElt X1; clelt X2(X1); X1

8 AP4 - Programmation Orientée Objet Chapitre 3 : Programmation Objet en C++ class clElt { int L,C,V; clElt *pSuiv; } ClElt X1; clelt X2(X1); L C V X1

9 AP4 - Programmation Orientée Objet Chapitre 3 : Programmation Objet en C++ class clElt { int L,C,V; clElt *pSuiv; } ClElt X1; clelt X2(X1); L C V X1 X2

10 AP4 - Programmation Orientée Objet Chapitre 3 : Programmation Objet en C++ class clElt { int L,C,V; clElt *pSuiv; } ClElt X1; clelt X2(X1); L C V X1 L C V X2

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

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

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

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

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

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

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

18 AP4 - Programmation Orientée Objet Chapitre 3 : Programmation Objet en C++ class Compose { int X; bool Y; int *p; public: }X1; Simple X2(X1); Simple X3; X3=X1; un pointeur  surcharge d'opérateur x1 y2 p X1 x y p X2

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

20 AP4 - Programmation Orientée Objet Chapitre 3 : Programmation Objet en C++ class Compose { int X; bool Y; int *p; public: }X1; Simple X2(X1); Simple X3; X3=X1; un pointeur  surcharge d'opérateur x1 y2 p X1 x1 y2 p X2 x y p

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

22 AP4 - Programmation Orientée Objet Chapitre 3 : Programmation Objet en C++ 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

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37


Télécharger ppt "AP4 - Programmation Orientée Objet Chapitre 3 : Programmation Objet en C++ class Entier { int i; int lit_i(void); void Ecrit_i(int); }; int Entier::lit_i(void)"

Présentations similaires


Annonces Google