SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Université des Frères Mentouri – Constantine - 1
Faculté des ST - Département d'Electronique
Dr. Amina HAMEURLAINE
am.hameurlaine@gmail.com
amina.hameurlaine@umc.edu.dz
2019/2020
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
Les relations entre classes
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
Association
Agrégation
Composition
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
Association
Agrégation
Composition
 Les classes peuvent être reliées structurellement par 3 types de relations:
 Association
 Composition
 Agrégation
 Une relation précise que les objets d’une classe sont reliés aux objets d’une
autre classe.
 Une relation est représentée par un attribut.
L'agrégation et la composition sont deux cas
particuliers de l’association.
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
1. L’association
2. L’agrégation
3. La composition
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
 Exemple:
 Un client peut passer une (1) ou plusieurs (*) commandes,
 Une commande peut contenir une (1) ou plusieurs (*) lignes,
 Une ligne de commande contient un seul article.
 Une association représente une relation sémantique entre deux classes.
 Examples: Representation en UML.
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
 Relation unidirectionnelle
 Relation bidirectionnelle
 Multiplicité (ou cardinalité) : représente le nombre
d’instances (objets) d’une classe qui peuvent être liées
aux instances d’une autre classe.
 Si la classe A est associée a la classe B :
 La classe A va utiliser les objets de type B comme attribut (pointeur).
 La ligne de vie des objets de la classeA et de la classe B ne sont pas
associés étroitement : un objet peut être détruit sans que l’autre le soit
nécessairement.
 La création et la destruction des objets est indépendante.
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
 Représentation en C++:
 Exemple 1:
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
La mise en place de l’association se fait à laide de:
 Un attribut pointeur de type objet,
 Une méthode qui va pointer sur un objet
//associer l’objet p à l’objet prs
//associer l’objet prs à l’objet p
/*indiquer au compilateur que Pays est de type class
afin d'éviter le message d'erreur : ’Pays’ has not been declared */
//Un pointeur de type Pays qui pointe sur un
objet de type Pays
//initialisation du pointeur pays
/*mise en place de l'association
via une méthode */
Chaque objet d’une classe utilise un pointeur
qui pointe sur un objet de l’autre classe.
//Un pointeur de type President
/* mise en place de l'association via
une méthode */
President
-*pays: Pays
+President()
+set_pays(Pays *P): void
Pays
- *president : President
+Pays()
+set_presid(President *P): void
 Représentation en C++:
 Exemple 1:
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
La mise en place de l’association se fait à laide de:
 Un attribut pointeur de type objet,
 Une méthode qui utilise un paramètre de type pointeur.
//associer l’objet p à l’objet prs
//associer l’objet prs à l’objet p
*pays =&p
prs
*president= &prs
p
L’objet p utilise le pointeur president pour pointer
sur l’objet prs via la méthode set_presid.
L’objet prs utilise le pointeur pays pour pointer sur
l’objet p via la méthode set_pays.
 Représentation en C++:
 Exemple 2: avec un vecteur de pointeurs.
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
La mise en place de l’association se fait à laide de:
 Un vecteur de pointeurs de type objet
 Une méthode qui utilise un paramètre de type pointeur .
// inclure la bibliothèque vector
/* un vecteur de pointeurs de type
Commande*/
// mise en place de l’association
//associer l’objet c1 à l’objet cmd1
//associer l’objet c1 à l’objet cmd2
Chaque objet de la classe Client utilise un
vecteur de pointeurs cmd [*] pour pointer sur
des objets de la classe Commande via la
méthode set_commande.
Commande
+Commande()
Client
- cmd [*] : Commande
+Client()
+set_commande(Commande *C):
void
 Représentation en C++:
 Exemple 2: avec un vecteur de pointeurs.
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
La mise en place de l’association se fait à laide de:
 Un vecteur de pointeurs de type objet
 Une méthode qui utilise un paramètre de type pointeur .
//associer l’objet c1 à l’objet cmd1
//associer l’objet c1 à l’objet cmd2
cmd [ *] = {&cmd1, &cmd2}
c1
L’objet c1 utilise le vecteur de pointeurs cmd[*]
pour pointer sur les objets cmd1 et cmd2 via
la méthode set_commande.
cmd2
cmd1
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
1. L’association
2. L’agrégation
3. La composition
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
 L’agrégation est un cas particuliers de l’association exprimant une relation de
contenance.
 Elle représente une relation d’assemblage de type "ensemble / élément" .
 Une classe agrégée (l’élément) fait partie d’une autre classe agrégat
(l’ensemble).
 Le cycle de vie de l’agrégat et de ses éléments agrégés peuvent être
indépendants.=> chaque objet a sa propre durée de vie.
Examples: Representation en UML
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
 Si un objet A fait partie d'un objet B, alors:
 L’objet B ne fait pas partie de l’objet A
 L’objet A peut exister indépendamment de l’objet B
=> La suppression de l’objet B n’entraîne pas forcement la suppression de
l’objet A: chaque objet peut avoir sa propre durée de vie.
 L’objet A peut faire partie de plusieurs objets.
 Si un objet A fait partie d'un objet B, et que B fait partie d'un objet C, alors A doit
faire partie d'un objet C. Sinon cela signifie que les champs sémantiques des
objets sont mal définis.
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
 Représentation en C++:
 Exemple 1: avec un pointeur.
La mise en place de l’agrégation se fait à laide de:
 Un pointeur qui pointe sur l’objet agrégé déjà créé en
dehors de l'objet conteneur.
 Ou une référence qui fait référence à l'objet agrégé.
/* créer l’objet L et faire la liaison avec
l’objet art */
// ou
//une allocation dynamique*article =&art
L art
Article
+Article()
Ligne
-*article: Article
+Ligne( Article *a)
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
 Représentation en C++:
 Exemple 2: avec une référence.
La mise en place de l’agrégation se fait à laide de:
 Un pointeur ou une référence qui pointe sur l’objet
déjà créé en dehors de l'objet conteneur.
 Ou une référence qui fait référence à l'objet agrégé.
&article =art
L art /* créer l’objet L et faire la liaison avec
l’objet art */
// une référence
Article
+Article()
Ligne
-&article: Article
+Ligne( Article &a)
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
 Représentation en C++:
 Exemple 3: avec un tableau de pointeurs.
/*un tableau de pointeur de 8 cases
mémoires*/
/* créer l’objet E et faire la liaison avec le tableau p via
le pointeur pp*/
*personne [8] =
{&p[0], …,&p[7] }
E Personne p[8]
0 1 2 3 4 5 6 7
Personne
+Personne()
Equipe
-*personne[8]: Personne
+Equipe( Personne *a)
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
1. L’association
2. L’agrégation
3. La composition
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
 Une composition est une agrégation plus forte signifiant « est composée d’un».
 Le cycle de vie de l’agrégat et de ses éléments agrégés sont liés.
 L’agrégat (composite) est responsable du cycle de vie de ses éléments.
 La destruction de l’agrégat entraîne la destruction de toutes ses éléments.
 Un élément ne peut appartenir qu’à un seul composite: agrégation non
partagée.
 Si un objet A (conteneur ou composite) est composé d’un objet B (composant) ,
alors:
 L’objet B n’appartient qu’a l’objet A et ne peut pas être partagé avec un autre
objet.
 L’objet A est responsable de la construction et la destruction de de l’objet B
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
 Representation en UML.
Examples:
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
 Représentation en C++:
 Exemple 1: avec un attribut normal.
La mise en place de la composition se fait au moment de
l’instantiotion de l'objet composite a l’aide de:
 Un attribut normal de type objet.
 Ou un pointeur pour une allocation dynamique.
v
moteur
// un attribut objet de type Moteur
/* créer l’objet V qui va créer
automatiquement l’objet moteur */
Moteur
+Moteur()
Voiture
-moteur: Moteur
+Voiture( )
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
 Représentation en C++:
 Exemple 2: avec un pointeur.
La mise en place de la composition se fait au moment de
l’instantiotion de l'objet composite a l’aide de:
 Un attribut normal de type objet.
 Ou un pointeur pour une allocation dynamique.
// un pointeur de type Moteur
/*créer un objet de type moteur
(allocation dynamique)*/
/* créer l’objet V qui va créer l’objet
moteur par l’operateur new */
/* la destruction de V va entraîner la destruction de l’objet
moteur */
Moteur
+Moteur()
+~Moteur()
Voiture
-*moteur: Moteur
+Voiture( )
+~Voiture()
Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
 Représentation en C++:
 Exemple 3: avec un tableau dynamique.
/*créer un tableau de
taille nbr_ligne */
Ligne
+Ligne()
+~Ligne()
Commande
-*ligne: Ligne
+Commande( )
+~Commande()
 «Cours POO UML/C++ : les relations entre classes» ,ThierryVaira.
 « Algorithmique et Programmation 2 : Agrégation et Composition», Romain BOURQUI.
 « Apprendre le C++ », M. Hamemerchmidt.
 « Apprendre le C++ », C. Delonnoy.
 « Programmation en Langage C++ : Cours etTravaux Pratiques », B. Boukhezzar.
 https://fr.slideshare.net/LiliaSfaxi/chp6-de-uml-vers-c
 https://fr.slideshare.net/MireilleBF/uml-classes-par-les-exemples
 http://www.cplusplus.com/doc/tutorial/
 https://openclassrooms.com/courses/programmez-avec-le-langage-c/qu-est-ce-
que-le-c-2
 https://fr.coursera.org/learn/cpp-poo
 http://carl.seleborg.free.fr/cpp/cours/index_cours.html
Cours Programmation Orientée Objet en C++ Dr. A.HAMEURLAINE

Weitere ähnliche Inhalte

Was ist angesagt?

POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationMouna Torjmen
 
Applications Android - cours 9 : Intents et transfert des données
Applications Android - cours 9 : Intents et transfert des donnéesApplications Android - cours 9 : Intents et transfert des données
Applications Android - cours 9 : Intents et transfert des donnéesAhmed-Chawki Chaouche
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Aziz Darouichi
 
POO Java Chapitre 6 Exceptions
POO Java  Chapitre 6 ExceptionsPOO Java  Chapitre 6 Exceptions
POO Java Chapitre 6 ExceptionsMouna Torjmen
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Amina HAMEURLAINE
 
Cours c#
Cours c#Cours c#
Cours c#zan
 
POO Java Introduction
POO Java IntroductionPOO Java Introduction
POO Java IntroductionMouna Torjmen
 
Applications Android - cours 11 : Boites de dialogue
Applications Android - cours 11 : Boites de dialogueApplications Android - cours 11 : Boites de dialogue
Applications Android - cours 11 : Boites de dialogueAhmed-Chawki Chaouche
 
POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetMouna Torjmen
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Aziz Darouichi
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++coursuniv
 
Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Fabio Hernandez
 
POO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsPOO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsMouna Torjmen
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java HéritageNadaBenLatifa
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux javaInes Ouaz
 

Was ist angesagt? (20)

Chapitre3 tableauxcpp
Chapitre3 tableauxcppChapitre3 tableauxcpp
Chapitre3 tableauxcpp
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 
POO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 EncapsulationPOO Java Chapitre 2 Encapsulation
POO Java Chapitre 2 Encapsulation
 
Applications Android - cours 9 : Intents et transfert des données
Applications Android - cours 9 : Intents et transfert des donnéesApplications Android - cours 9 : Intents et transfert des données
Applications Android - cours 9 : Intents et transfert des données
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++
 
POO Java Chapitre 6 Exceptions
POO Java  Chapitre 6 ExceptionsPOO Java  Chapitre 6 Exceptions
POO Java Chapitre 6 Exceptions
 
Chap2fonctionscpp
Chap2fonctionscppChap2fonctionscpp
Chap2fonctionscpp
 
Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++Cours Programmation Orientée Objet en C++
Cours Programmation Orientée Objet en C++
 
Cours c#
Cours c#Cours c#
Cours c#
 
POO Java Introduction
POO Java IntroductionPOO Java Introduction
POO Java Introduction
 
Applications Android - cours 11 : Boites de dialogue
Applications Android - cours 11 : Boites de dialogueApplications Android - cours 11 : Boites de dialogue
Applications Android - cours 11 : Boites de dialogue
 
POO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & ObjetPOO Java Chapitre 1 Classe & Objet
POO Java Chapitre 1 Classe & Objet
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019
 
Cours de c
Cours de cCours de c
Cours de c
 
programmation orienté objet c++
programmation orienté objet c++programmation orienté objet c++
programmation orienté objet c++
 
Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++Partie 11: Héritage — Programmation orientée objet en C++
Partie 11: Héritage — Programmation orientée objet en C++
 
POO Java Chapitre 3 Collections
POO Java Chapitre 3 CollectionsPOO Java Chapitre 3 Collections
POO Java Chapitre 3 Collections
 
Récursivité
RécursivitéRécursivité
Récursivité
 
Exercice 1 java Héritage
Exercice 1 java HéritageExercice 1 java Héritage
Exercice 1 java Héritage
 
Fondamentaux java
Fondamentaux javaFondamentaux java
Fondamentaux java
 

Ähnlich wie Poo en c++ les relations entre classes

Java cours n° 2 - classe-objet-constructeur
Java   cours n° 2 - classe-objet-constructeurJava   cours n° 2 - classe-objet-constructeur
Java cours n° 2 - classe-objet-constructeurAbdelwahab Naji
 
Memojava 100604104941-phpapp02
Memojava 100604104941-phpapp02Memojava 100604104941-phpapp02
Memojava 100604104941-phpapp02Rahma Boufalgha
 
Formation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetFormation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetkemenaran
 
Découvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCLDécouvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCLDotNetHub
 
C5 Javascript French
C5 Javascript FrenchC5 Javascript French
C5 Javascript FrenchVlad Posea
 
Chapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdfChapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdfBoubakerMedanas
 
Chapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdfChapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdfBoubakerMedanas
 
Java uik-chap4-poo3
Java uik-chap4-poo3Java uik-chap4-poo3
Java uik-chap4-poo3Amel Morchdi
 
TP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieTP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieCorrection TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieMariem ZAOUALI
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptxSafaeLhr1
 
TP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieTP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008Khalil Lechheb
 
Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1Laurent BUNIET
 

Ähnlich wie Poo en c++ les relations entre classes (20)

Java cours n° 2 - classe-objet-constructeur
Java   cours n° 2 - classe-objet-constructeurJava   cours n° 2 - classe-objet-constructeur
Java cours n° 2 - classe-objet-constructeur
 
Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
 
Memojava 100604104941-phpapp02
Memojava 100604104941-phpapp02Memojava 100604104941-phpapp02
Memojava 100604104941-phpapp02
 
Formation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objetFormation C# - Cours 3 - Programmation objet
Formation C# - Cours 3 - Programmation objet
 
Découvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCLDécouvrez C# 4.0 et les améliorations apportées à la BCL
Découvrez C# 4.0 et les améliorations apportées à la BCL
 
C5 Javascript
C5 JavascriptC5 Javascript
C5 Javascript
 
C5 Javascript French
C5 Javascript FrenchC5 Javascript French
C5 Javascript French
 
Chapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdfChapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdf
 
Chapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdfChapitre 2-Data binding.pdf
Chapitre 2-Data binding.pdf
 
Java uik-chap4-poo3
Java uik-chap4-poo3Java uik-chap4-poo3
Java uik-chap4-poo3
 
TP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / TunisieTP3 Atelier C++/ GL2 INSAT / Tunisie
TP3 Atelier C++/ GL2 INSAT / Tunisie
 
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieCorrection TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
 
Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptx
 
TP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieTP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / Tunisie
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
Cours java smi 2007 2008
Cours java smi 2007 2008Cours java smi 2007 2008
Cours java smi 2007 2008
 
POO-chapitre3.pptx
POO-chapitre3.pptxPOO-chapitre3.pptx
POO-chapitre3.pptx
 
Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1Cours de C++, en français, 2002 - Cours 2.1
Cours de C++, en français, 2002 - Cours 2.1
 
Cours wpf avancé
Cours wpf avancéCours wpf avancé
Cours wpf avancé
 
generation_code.pdf
generation_code.pdfgeneration_code.pdf
generation_code.pdf
 

Kürzlich hochgeladen

MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprisesMajdaKtiri2
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxpopzair
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurdinaelchaine
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.docKarimKhrifech
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxlamourfrantz
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 

Kürzlich hochgeladen (20)

Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
gestion des conflits dans les entreprises
gestion des  conflits dans les entreprisesgestion des  conflits dans les entreprises
gestion des conflits dans les entreprises
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
Présentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptxPrésentation de cartes d'extension zhr..pptx
Présentation de cartes d'extension zhr..pptx
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteur
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
Grammaire pour les élèves de la 6ème.doc
Grammaire pour les élèves de la  6ème.docGrammaire pour les élèves de la  6ème.doc
Grammaire pour les élèves de la 6ème.doc
 
Cours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptxCours-irrigation_et_drainage_cours1.pptx
Cours-irrigation_et_drainage_cours1.pptx
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 

Poo en c++ les relations entre classes

  • 1. Université des Frères Mentouri – Constantine - 1 Faculté des ST - Département d'Electronique Dr. Amina HAMEURLAINE am.hameurlaine@gmail.com amina.hameurlaine@umc.edu.dz 2019/2020 Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE Les relations entre classes
  • 2. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE Association Agrégation Composition
  • 3. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE Association Agrégation Composition  Les classes peuvent être reliées structurellement par 3 types de relations:  Association  Composition  Agrégation  Une relation précise que les objets d’une classe sont reliés aux objets d’une autre classe.  Une relation est représentée par un attribut. L'agrégation et la composition sont deux cas particuliers de l’association.
  • 4. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE 1. L’association 2. L’agrégation 3. La composition
  • 5. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE  Exemple:  Un client peut passer une (1) ou plusieurs (*) commandes,  Une commande peut contenir une (1) ou plusieurs (*) lignes,  Une ligne de commande contient un seul article.
  • 6.  Une association représente une relation sémantique entre deux classes.  Examples: Representation en UML. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE  Relation unidirectionnelle  Relation bidirectionnelle  Multiplicité (ou cardinalité) : représente le nombre d’instances (objets) d’une classe qui peuvent être liées aux instances d’une autre classe.
  • 7.  Si la classe A est associée a la classe B :  La classe A va utiliser les objets de type B comme attribut (pointeur).  La ligne de vie des objets de la classeA et de la classe B ne sont pas associés étroitement : un objet peut être détruit sans que l’autre le soit nécessairement.  La création et la destruction des objets est indépendante. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE
  • 8.  Représentation en C++:  Exemple 1: Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE La mise en place de l’association se fait à laide de:  Un attribut pointeur de type objet,  Une méthode qui va pointer sur un objet //associer l’objet p à l’objet prs //associer l’objet prs à l’objet p /*indiquer au compilateur que Pays est de type class afin d'éviter le message d'erreur : ’Pays’ has not been declared */ //Un pointeur de type Pays qui pointe sur un objet de type Pays //initialisation du pointeur pays /*mise en place de l'association via une méthode */ Chaque objet d’une classe utilise un pointeur qui pointe sur un objet de l’autre classe. //Un pointeur de type President /* mise en place de l'association via une méthode */ President -*pays: Pays +President() +set_pays(Pays *P): void Pays - *president : President +Pays() +set_presid(President *P): void
  • 9.  Représentation en C++:  Exemple 1: Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE La mise en place de l’association se fait à laide de:  Un attribut pointeur de type objet,  Une méthode qui utilise un paramètre de type pointeur. //associer l’objet p à l’objet prs //associer l’objet prs à l’objet p *pays =&p prs *president= &prs p L’objet p utilise le pointeur president pour pointer sur l’objet prs via la méthode set_presid. L’objet prs utilise le pointeur pays pour pointer sur l’objet p via la méthode set_pays.
  • 10.  Représentation en C++:  Exemple 2: avec un vecteur de pointeurs. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE La mise en place de l’association se fait à laide de:  Un vecteur de pointeurs de type objet  Une méthode qui utilise un paramètre de type pointeur . // inclure la bibliothèque vector /* un vecteur de pointeurs de type Commande*/ // mise en place de l’association //associer l’objet c1 à l’objet cmd1 //associer l’objet c1 à l’objet cmd2 Chaque objet de la classe Client utilise un vecteur de pointeurs cmd [*] pour pointer sur des objets de la classe Commande via la méthode set_commande. Commande +Commande() Client - cmd [*] : Commande +Client() +set_commande(Commande *C): void
  • 11.  Représentation en C++:  Exemple 2: avec un vecteur de pointeurs. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE La mise en place de l’association se fait à laide de:  Un vecteur de pointeurs de type objet  Une méthode qui utilise un paramètre de type pointeur . //associer l’objet c1 à l’objet cmd1 //associer l’objet c1 à l’objet cmd2 cmd [ *] = {&cmd1, &cmd2} c1 L’objet c1 utilise le vecteur de pointeurs cmd[*] pour pointer sur les objets cmd1 et cmd2 via la méthode set_commande. cmd2 cmd1
  • 12. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE 1. L’association 2. L’agrégation 3. La composition
  • 13. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE  L’agrégation est un cas particuliers de l’association exprimant une relation de contenance.  Elle représente une relation d’assemblage de type "ensemble / élément" .  Une classe agrégée (l’élément) fait partie d’une autre classe agrégat (l’ensemble).  Le cycle de vie de l’agrégat et de ses éléments agrégés peuvent être indépendants.=> chaque objet a sa propre durée de vie. Examples: Representation en UML
  • 14. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE  Si un objet A fait partie d'un objet B, alors:  L’objet B ne fait pas partie de l’objet A  L’objet A peut exister indépendamment de l’objet B => La suppression de l’objet B n’entraîne pas forcement la suppression de l’objet A: chaque objet peut avoir sa propre durée de vie.  L’objet A peut faire partie de plusieurs objets.  Si un objet A fait partie d'un objet B, et que B fait partie d'un objet C, alors A doit faire partie d'un objet C. Sinon cela signifie que les champs sémantiques des objets sont mal définis.
  • 15. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE  Représentation en C++:  Exemple 1: avec un pointeur. La mise en place de l’agrégation se fait à laide de:  Un pointeur qui pointe sur l’objet agrégé déjà créé en dehors de l'objet conteneur.  Ou une référence qui fait référence à l'objet agrégé. /* créer l’objet L et faire la liaison avec l’objet art */ // ou //une allocation dynamique*article =&art L art Article +Article() Ligne -*article: Article +Ligne( Article *a)
  • 16. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE  Représentation en C++:  Exemple 2: avec une référence. La mise en place de l’agrégation se fait à laide de:  Un pointeur ou une référence qui pointe sur l’objet déjà créé en dehors de l'objet conteneur.  Ou une référence qui fait référence à l'objet agrégé. &article =art L art /* créer l’objet L et faire la liaison avec l’objet art */ // une référence Article +Article() Ligne -&article: Article +Ligne( Article &a)
  • 17. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE  Représentation en C++:  Exemple 3: avec un tableau de pointeurs. /*un tableau de pointeur de 8 cases mémoires*/ /* créer l’objet E et faire la liaison avec le tableau p via le pointeur pp*/ *personne [8] = {&p[0], …,&p[7] } E Personne p[8] 0 1 2 3 4 5 6 7 Personne +Personne() Equipe -*personne[8]: Personne +Equipe( Personne *a)
  • 18. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE 1. L’association 2. L’agrégation 3. La composition
  • 19. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE  Une composition est une agrégation plus forte signifiant « est composée d’un».  Le cycle de vie de l’agrégat et de ses éléments agrégés sont liés.  L’agrégat (composite) est responsable du cycle de vie de ses éléments.  La destruction de l’agrégat entraîne la destruction de toutes ses éléments.  Un élément ne peut appartenir qu’à un seul composite: agrégation non partagée.  Si un objet A (conteneur ou composite) est composé d’un objet B (composant) , alors:  L’objet B n’appartient qu’a l’objet A et ne peut pas être partagé avec un autre objet.  L’objet A est responsable de la construction et la destruction de de l’objet B
  • 20. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE  Representation en UML. Examples:
  • 21. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE  Représentation en C++:  Exemple 1: avec un attribut normal. La mise en place de la composition se fait au moment de l’instantiotion de l'objet composite a l’aide de:  Un attribut normal de type objet.  Ou un pointeur pour une allocation dynamique. v moteur // un attribut objet de type Moteur /* créer l’objet V qui va créer automatiquement l’objet moteur */ Moteur +Moteur() Voiture -moteur: Moteur +Voiture( )
  • 22. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE  Représentation en C++:  Exemple 2: avec un pointeur. La mise en place de la composition se fait au moment de l’instantiotion de l'objet composite a l’aide de:  Un attribut normal de type objet.  Ou un pointeur pour une allocation dynamique. // un pointeur de type Moteur /*créer un objet de type moteur (allocation dynamique)*/ /* créer l’objet V qui va créer l’objet moteur par l’operateur new */ /* la destruction de V va entraîner la destruction de l’objet moteur */ Moteur +Moteur() +~Moteur() Voiture -*moteur: Moteur +Voiture( ) +~Voiture()
  • 23. Cours Programmation Orientée Objet en C++ Dr. A.HAMEUR LAINE  Représentation en C++:  Exemple 3: avec un tableau dynamique. /*créer un tableau de taille nbr_ligne */ Ligne +Ligne() +~Ligne() Commande -*ligne: Ligne +Commande( ) +~Commande()
  • 24.  «Cours POO UML/C++ : les relations entre classes» ,ThierryVaira.  « Algorithmique et Programmation 2 : Agrégation et Composition», Romain BOURQUI.  « Apprendre le C++ », M. Hamemerchmidt.  « Apprendre le C++ », C. Delonnoy.  « Programmation en Langage C++ : Cours etTravaux Pratiques », B. Boukhezzar.  https://fr.slideshare.net/LiliaSfaxi/chp6-de-uml-vers-c  https://fr.slideshare.net/MireilleBF/uml-classes-par-les-exemples  http://www.cplusplus.com/doc/tutorial/  https://openclassrooms.com/courses/programmez-avec-le-langage-c/qu-est-ce- que-le-c-2  https://fr.coursera.org/learn/cpp-poo  http://carl.seleborg.free.fr/cpp/cours/index_cours.html Cours Programmation Orientée Objet en C++ Dr. A.HAMEURLAINE