Bonjour,

Je suis en train de mettre en place une architecture parent <> enfants, et ne trouve pas de methode de recherche sans utilisation de dynamic cast.

je m'explique :

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
25
26
27
 
class Object
{
public:
  Object(void);
  virtual ~Object(void);
 
  virtual const std::string& GetName(void){return m_Name;}
 
  template <class T>
  int Find(std::string Name, std::vector<T*>& result);
 
protected:
  std::vector<Object *> m_Childs;
  std::string m_Name;
};
 
 
class Pomme : public Object
{
 
};
 
class Poire : public Object
{
 
};
Si j'ai un container de type Object, et que je veux retrouver ses enfants de type Poire se nommant "auchocolat" je rempli mon vecteur result en dynamic castant les enfant qui match.

je ne vois pas trop comment faire d'autre, y a t il une methode ou un design evitant ces dynamic_cast ?

merci d'avance pour vos reponses.