Je dois créer une classe template de liste.
Je n'avais pas prévu à la base qu'elle gère polymorphismeet dans un main de test fournit par le prof, je me suit fait avoir.... tout mes objets utilisaient ma fonction affichage de la mère.
La classe prend des objets en insertion et duplique chaque objet dans une classe noeud.
Seulement cette classe noeud est paramétrée sur la classe template qui est paramétrée sur le type de base. Donc quand je duplique un objet pour le stocker, j'utilise le constructeur de copie de la base et ce même si je lui passe un objet fille. Cela ne m'interesse pas du tout.
J'ai vu le pattern design clone et je voudrais y échapper.
Voici le code de la classe qui crée mes noeuds. Tout y est passé par référence (par des classe templates qui héritent de ma classe template file) sauf l'adresse du noeud suivant.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
template<class T> Noeud<T>::Noeud(const T& obj, Noeud* pNext)
{
    value = //Je voudrais dupliquer obj que ce soit une fille ou non !
    next = pNext;
}
template<class T> Noeud<T>::~Noeud()
{
    delete value;
}
Des idées ? Merci d'avance ....

J'aime p-ô les templates, c'est mal geré :/