Acceder a la fonction membre d'une classe, dans une std::map
Bonsoir,
Je cree une map de std::string liees a des pointeurs sur class (admettons AExemple, une classe abstraite).
J'aimerais acceder a une fonction membre de l'une de ces classes, dans ce cas pratique, ajouter une class Test a ma map en envoyant a son constructeur la valeur de retour d'un getter de Toto, mais j'ai le message d'erreur suivant: test.cpp:4: error: ‘class AExemple’ has no member named ‘getNb’, un peu comme si il ne dereferencait pas le pointeur sur classe AExemple, c'est la premiere fois que je tente d'utiliser ce conteneur, apparemment quelque chose m'echappe !
Voici le code:
Test.hpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| #include <map>
class AExemple
{
private:
std::map<std::string, AExemple*> map_;
public:
AExemple();
};
class Test : public AExemple
{
private:
int nb;
public:
Test(int nb);
int getNb();
};
class Toto : public AExemple
{
private:
int getNb();
int nb;
public:
Toto();
int getNb();
} |
Test.cpp
Code:
1 2 3 4 5 6 7
| #include "Test.hpp"
AExemple::AExemple()
{
this->map_["UN"] = new Toto();
this->map_["DEUX"] = new Test(this->map_["UN"]->getNb();
} |
Merci pour votre aide !