bonjour, c'est mon 1er post ici, alors bonne année à tous les codeurs !
Je n'arrive pas à trouver de solution au problème suivant.

J'ai une hiérarchie de classes. Je dit hiérarchie car chaque dérivation ajoute des services au parent, on est bien dans le "est-un".
Toutes ces classes utilisent une std::list de structures, des méthodes de manipulation de la liste sont communes et serait bien placées dans la classe de base ancêtre.
Mais chaque dérivée utilise sa propre struct, différente de celle qu'utilise son parent.
J'ai pensé faire une classe de base abstraite telle que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
class Base<T> {
  std::list<T> mList;
  // methods for manipulating the list
};
et créer une dérivée par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
struct SA { ... };
class A : public Base<SA> { ... }
Le problème est que je ne peux plus dériver cette classe en lui faisant utiliser des struct SB à la place des SA.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
class B : public A { ... } // Base::mList est une list<SA>, moi je voulais SB
class C : public Base<SC> { ... } // mList OK, mais je ne derive pas de A
J'ai tourné ça dans tous les sens, essayé d'utiliser une classe annexe, utilisé l'héritage multiple, cherché sur le Net et je n'y arrive pas !
Si quelqu'un voit comment faire...

a+
Gilles.