Appel d'une méthode d'une classe dérivée avec le bon type
Voilà,
J'ai une classe mère virtuelle
Code:
1 2 3
|
struct mere
{ virtual mere* clone() =0;} |
et un patron de classe qui dérive de la classe mere
Code:
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:
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.