tout d'abord pour info, le préfixe Cmachin est utilisé assez largement par la MFC, donc gaffe.
Puis, si tu fais cette liste autrement pour que t'entrainer à programmer, jette un oeil aux listes de la STL (#include <list> )
Ca rend moins naïf.
Ensuite, si tu veux vraiment faire ta liste toi même, y'a pas besoin de faire de type dérivé. Si tu veux faire une liste chainée, il faut créer des noeuds qui se chargent de pointer vers des éléments d'un certain type.
template <typename T>
Node
{
T elem;
Node<T> * next, * prev;
public:
Node(const T & telem, Node<T> * ptrev, Node<T> * tnext):elem(telem), prev(tprev), next(tnext){}
T& operator * (){return elem;}
const T & operator * () const {return elem;}
};
template <typename T>
class List
{
Node<T> * first, * last;
public:
...
};
enfin j'ai pas envie d'en écrire plus, mais ça ressemble déjà à une liste chainée.
Si tu veux plus d'info, ou si tu veux limiter l'usage de ces listes à des types dérivés d'un certain type T, n'hésite pas à poster.