Your SlideShare is downloading. ×
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Chapitre 2 poo classe objet c++
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Chapitre 2 poo classe objet c++

4,368

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,368
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
149
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Chapitre 2: notions de classes, objets en C++ 1
  • 2. 2
  • 3. 3
  • 4. 4
  • 5. 5
  • 6. 6
  • 7. 7
  • 8. 8
  • 9. 9
  • 10. 10
  • 11. 11
  • 12. 12
  • 13. 13
  • 14. prenom=p; nom = n; 14
  • 15. Personne::affichage () { cout << prenom << endl << nom << endl; }Prenom=« »; nom=« »; Personne:: modification ( string p, string n) { Prenom=p; nom= n;void affichage() ; }void modification(string , string); P.modification(« ali1 », « hj»); P.affichage();…main(…) {………. }Personne P;Personne P1("ali" , " ben saleh“);P1.affichage();.………….. 15
  • 16. compte(double d) : actif(d) { } 16
  • 17. 17
  • 18. 18
  • 19. 19
  • 20. Objet statique 20
  • 21. 21
  • 22. Objet dynamique…………………… 22
  • 23. 23
  • 24. 24
  • 25. 25
  • 26. 26
  • 27. 27
  • 28. Problème constructeur par copie implicite (variables dynamiques) Copier membre à membre un pointeur signifie que ptr de lobjet y pointe au même endroit que ptr de lobjet x (une recopie dadresse).! 28
  • 29. 29
  • 30. 30
  • 31. class T { int *ptr; int nbre;public : T(const T& t2) { nbre= t2.nbre; ptr = new int[nbre]; for (int i=0; i<nbre ; i++) ptr[i]= t2.ptr[i]; }…..}………T t1;….. Remplir les elémént de t1 [1, 3, 5]T t2=t1; // copie de t1 à t2T t2(t1); 31
  • 32. 32
  • 33. 33
  • 34. 34
  • 35. 35
  • 36. 36
  • 37. 37
  • 38. 38
  • 39. 39
  • 40. ClassTestStatic a, b;a.NbObjet =10; 40
  • 41. 41
  • 42. 42
  • 43. 43
  • 44. 44
  • 45. 45
  • 46. 46
  • 47. 47
  • 48. 48
  • 49. 49
  • 50. 50
  • 51. 51
  • 52. Instanciation dynamique – Le destructeurle destructeur est une méthode appelée lorsque lobjet est détruit. Le destructeur doit être impérativement écrit pour libérer la mémoire allouée de façon dynamique pendant la vie dun objet. class A { private: ... public: A(); // Constructeur par défaut ~A(); // Destructeur ... }; – Durée de vie dun objetLe destructeur est appelé lorsque lobjet est détruit. Quand un objet est-il détruit ? Dans le cas dune instanciation automatique (cest à dire non dynamique), lobjet est détruit à la fin du bloc dans lequel il a été déclaré. int main() { A a1; for(int i = 0; i<10; i++) { A a2; a2.afficher(); } // Destruction de a2 a1.afficher(); } // Destruction de a1 52
  • 53. Instanciation dynamiqueLallocation dynamique du C++ seffectue avec les opérateurs new et delete, on doit absolument éviter dutiliser les fonctions malloc et free qui sont propres au C.Lallocation dynamique seffectue avec lopérateur new : lobjet est alloué puis initialisé par appel au constructeur.// Allocation dynamique dun entierint * ptr_entier = new int;// Allocation dynamique dun objet de classe Etudiant// Le constructeur par défaut est appeléEtudiant * ptr_etudiant1 = new Etudiant;// Allocation dynamique dun objet de classe Etudiant// Le constructeur avec un paramètre de type double est appeléEtudiant * ptr_etudiant2 = new Etudiant(12.5);On utilise lopérateur delete pour la suppression dun objet dynamique.// Suppression de lobjet pointé par ptr_entierdelete ptr_entier;// Suppression de lobjet pointé par ptr_etudiant1// Le destructeur de lobjet (de classe Etudiant) est appelédelete ptr_etudiant1;// Suppression de lobjet pointé par ptr_etudiant2// Le destructeur de lobjet (de classe Etudiant) est appelédelete ptr_etudiant2; 53
  • 54. Instanciation dynamiqueExemple de tableau :Tableau d’étudiants qui n’est pas dynamique :Etudiant promo2002[30];Lallocation dynamique dun tableau seffectue comme suit :Etudiant * promo2003 = new Etudiant[30];Dans ce cas là, il faut à la libération du tableau appeler lopérateur delete [], sinon seul le premier élément du tableau sera effectivement détruit :delete [] promo2003; 54
  • 55. 55
  • 56. 56
  • 57. Exemple : 1 57
  • 58. 58
  • 59. 59
  • 60. Exemple 2 60
  • 61. 61
  • 62. 62
  • 63. 63
  • 64. Exemple 3 64
  • 65. 65
  • 66. 66
  • 67. 67
  • 68. 68
  • 69. Exemple 4 69
  • 70. 70
  • 71. 71
  • 72. Exemple 5 72
  • 73. 73
  • 74. 74
  • 75. 75

×