Problème de conception avec héritage
Hello,
Je me tape du "legacy code". La conception générale me semble à revoir, mais bon, comme d'hab, pas le temps.
J'ai, pour simplifier, l'héritage suivant :
Code:
1 2 3 4 5 6 7 8
| class A
{
std::vect<A*> myVect;
}
class B : public A
{
} |
A noter que dans ce vecteur, je ne peux jamais avoir à la fois des pointeurs vers A et des pointeurs vers B. Le problème est qu'actuellement, quand je travaille avec des B, le code existant fait du dynamic_cast à tire-larigot quand il extrait les éléments du vecteur.
J'ai pensé à utiliser une technique à la CRTP, mais cela impliquerait d'instancier des A<A> et des B<B>, et ce n'est pas non plus très satisfaisant, même si je pourrais mettre des types par défaut, et que cela apparaîtrait transparent.
Que me conseillez-vous ? Je ne peux pas faire de trop grosses modifs (temps).
Merci.