[Aide] Design Pattern Composite
Bonjour,
Je travail sur un projet étudiant et je dois réaliser un programme où l'on dessines des formes 2D (sur 3 "fenêtres", une par dimension) qui sont rendus en 3D (dans une 4e fenêtre) via une bibliothèque.
Je vous met mon Diagramme de Classes : https://cacoo.com/diagrams/B3CpGA1CMx1cJYYq-8C798.png
je me heurte à un problème d'héritage pour le design pattern composite (Scene et Objet héritent de Composite) et à l'utilisation des QVector, l'erreur est liée au fait que la classe héritée Scene contient un QVector<Composite> (Composite n’étant jamais instanciée) et que lors de la construction par copie de Scene on copie le QVector de cette façon :
Code:
1 2 3 4 5
| Scene::Scene(const Scene & _scene)
: Composite(_scene.getNom())
{
objetsScenes=_scene.getObjetsScenes();
} |
on a pourtant bien surchargé l’opérateur = de Scene :
Code:
1 2 3 4 5
| Scene& Scene::operator=(const Scene & _scene)
{
objetsScenes = _scene.getObjetsScenes();
return *this;
} |
objetsScenes étant le QVector<Composite>
On obtient les erreurs suivantes :
Code:
1 2 3 4
| scene.cpp:14: instantiated from here "objetsScenes=_scene.getObjetsScenes();"
qvector.h:509: erreur : no matching function for call to 'Composite::Composite()'
composite.h:9: candidates are: Composite::Composite(const Composite&)
composite.h:8: Composite::Composite(QString) |
Merci.