Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parEudo Duchesne Modifié depuis plus de 10 années
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
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.