Bonjour,
j'ai récupéré un cours qui présente une façon d'implémenter différentes relations UML en C++.
Le texte est à trous et je bloque sur une notion présentée dans l'agrégation par un pointeur. Le texte dit, l'agrégation permet :
- de bénéficier du polymporphisme (Ok)
- l'adoption (l'agrégation ne se fait pas à la construction des objets mais n'importe quand).C'est le point qui me gêne...
Dans le cas d'une classe Voiture en relation avec une classe Moteur, le code donné est:
(je ne met que ce qui nous intéresse)
L'adoption se fait donc via un constructeur de Voiture prenant en paramètre un moteur ce qui contredit le fait que l'agrégation ne se fait pas à la construction des objets.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 class Voiture { private: Moteur *moteur; //agrégation par pointeur char* marque; public: Voiture(Moteur*); //adoption }; //adoption Voiture::Voiture(Moteur* m): moteur(m) { //que coder ici à part initialiser la marque ?? }
Pour moi l'adoption serait le fait de construire un voiture sans moteur et d'en adopter un par la suite via un setter par exemple.
Cette notion d'adoption c'est un "concept" de programmation ?
Merci
Partager