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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class A { std::vect<A*> myVect; } class B : public A { }
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.
Partager