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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
typedef map<string, Ressource *> Ressources;
Ressources container;
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
3
4
 
//Initialisation de la ressource cd1 et de dvd1
container[cd1.getTitre()] = new CD(cd1);
container[dvd1.getTitre()] = new DVD(dvd1);
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
 
CD temp;
temp = *(iterateur->second);
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
 
string titre;
titre = *(iterateur->second)->getTitre();
Si quelqu'un peut m'aider sur ce problème...

Merci d'avance.