Voilà,
J'ai une classe mère virtuelle
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
struct mere
{ virtual mere* clone() =0;}
et un patron de classe qui dérive de la classe mere
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
template<class TYPE> struct enfant : public mere
{ TYPE a;
   const TYPE& getA() const { return a;}
   virtual enfant* clone { return enfant(this);}
   enfant(TYPE i) : a(i)  {}
}
et finalement un tableau qui contient 10 pointeur
mere*.

Je voudrais pouvoir faire une boucle pour afficher les éléments de mon tableau du style
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
for (int j=0; j<10; j++) { std::cout Tab[j]->getA();}
Evidemment en l'état j'obtiens une erreur de compilation car la méthode
getA() ne fait pas partie de la classe mere.

Y'a t'il une manière élégante de résoudre ce problème sans passer par autant de dynamic_cast qu'il y a de TYPE possible ?

Merci de votre aide.