
Envoyé par
oodini
1. Es-tu obligé de faire un unique map ? Utilises-tu, à un endroit de ton code, le polymorphisme sur ce conteneur ?
Tres bonne remarque, car je viens de voir que non..
C'est juste que chaque Objet possede cette map qui lui permet de stocker d'autre objets enfants. Cela donne un arbre de donnees a base de Objet[1-X].
Le probleme c'est que si je veux redefinir l'affectation d'un Objet, je dois recopier tout ses objets enfants de cette map.
Problème de conception ?
D'ailleurs je me suis trompe dans mon premeir post mais ca ne change pas le probleme:
Chaque Objet a une map
std::map<std::string, ObjectList*>
Qui contient une liste chainee de ses objets donc en clair:
1 2 3 4 5 6 7
|
Objet------> MapObjet1-----------> instance 1 Objet1
-----------------------------------> instance 2 Objet1
------------>MapObjet2------------> instance 1 Objet2
------------>MapObjet3------------> instance 1 Objet3
// Avec Objet de type Objet
// MapObjet1 liste chainee de type Objet* |

Envoyé par
oodini
2. Problème annexe : ne peux-tu utiliser autre chose qu'un string comme clé de ton map ?
Donc en fait la string de la map permet de savoir quel sous objet je recherche
@r0d: Je vais regarder ce principe de constructeur virtuel, je n'ai jamais utilisé et ne connais pas ce principe.
@leternel: Perdre l'info trop vite, ok, mais comment faire ? Mettre un static membre dans Objet permettant de savoir de quel type est réellement l'objet ? Cela revient en quelque sorte a tenter du dynamic_cast non ? A moins que je vois mal ce que tu voulais dire
Partager