Je viens de lire un article sur le modèle de modèle curieusement récurrent. Et vous pouvez l'utiliser pour simuler des fonctions virtuelles avec des modèles.Conception pour utiliser toutes les sous-classes ensemble dans un conteneur en C++
Par exemple:
template<class T>
struct A
{
void func() { static_cast<T*>(this)->func(); }
};
struct B : public A<B>
{
void func() { cout << "B" << endl; }
};`
Cependant, si nous avons beaucoup de sous-classes de A et que vous voulez les mettre tous dans le vecteur, par exemple, vector<A*>
ce n'est pas possible lorsque vous utilisez des modèles, et vous devez utiliser polymorphisme normal avec des fonctions virtuelles dans la classe de base.
Quelle serait une suggestion de conception pour résoudre ce problème? Parce que je veux utiliser des modèles, mais aussi être capable d'utiliser toutes les sous-classes ensemble dans un conteneur.
+1: me battre sur le polymorphisme d'exécution – onof