Bonjour,
C'est peut-être un problème qui semblera basique à certains d'entre vous, mais je n'arrive pas à m'en sortir. Voila dans le cadre d'un projet école de gestion de médiathèque, j'ai défini en C++ les classes suivantes:
- Ressource (classe parent)
- CD (hérite de Ressource)
- Livre (hérite de Ressource)
- DVD (hérite de Ressource).
Ressource est donc une classe abstraite.
Je souhaiterais maintenant stocker toutes les ressources dans un container. Donc, après avoir regardé les containers de la STL, j'ai choisi le container map, en associant le titre de la ressource à un pointeur vers la ressource:
J'ai ensuite ajouté deux ressources à mon conteneur de la manière suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3typedef map<string, Ressource *> Ressources; Ressources container;
Maintenant je souhaiterais "ressortir" une ressource du conteneur en faisant par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 //Initialisation de la ressource cd1 et de dvd1 container[cd1.getTitre()] = new CD(cd1); container[dvd1.getTitre()] = new DVD(dvd1);
Malheureusement ce code ne marche pas car le conteneur contient des pointeurs vers des ressources et non pas des pointeurs vers des cds. Meme problème si j'essaye d'appeler une méthode de la ressource:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 CD temp; temp = *(iterateur->second);
Si quelqu'un peut m'aider sur ce problème...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 string titre; titre = *(iterateur->second)->getTitre();
Merci d'avance.
Partager