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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
    A a;
    a->GetpB(1)->f1();