Question conceptuelle utilisation d'une classe dans un map
Bonjour,
J'ai une classe B encapsulée dans la class A.
Je déclare ensuite un map de n class B. Je désire ensuite de l'extérieur pouvoir accéder aux fonctions de B, j'ai donc déclaré une fonction GetpB(index); qui me retourne un pointeur sur ma class B de position index. J'utilise enfin ce pointeur pour accéder aux fonctions membres de B.
Est-ce que cette approche est valable?
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
|
class A
{
public:
class B
{
f1();
f2();
};
protected:
std::map<int,B> m_map;
public:
B* GetpB(int index);
};
...
A::B* A::GetpB(int index)
{
std::map<int,B>::iterator it;
it = m_map.find(index);
if (it!=m_mapBV.end())
return (&it->second);
} |
plus loin dans le code principal
Code:
1 2 3
|
A a;
a->GetpB(1)->f1(); |