Classe abstraite ??

cs_tintin72 Messages postés 122 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 22 juillet 2006 - 11 févr. 2006 à 18:05
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 11 févr. 2006 à 19:06
Bonjour,


Pour mon programme j'ai besoin de 2 types de listes chainées qui sont parfois amenées à échanger des information entre elles.
J'ai donc fait 2 classes de listes chainées (list1 et list2). Toutefois, les listes ayant en gros les mêmes fonctions membres
et les mêmes variables membre, je me pose la question si ça ne vaudrait pas le coup de créer une classe abstraite (list) à partir de laquelle je ferai dériver mes 2 classes de listes (list1 et list2).
C'est la 1ere fois que je touche au polymorphisme en c++ et je ne suis donc pas trés sûr de moi.
Est ce qu'une classe abstraite dans ce genre est correcte et répondrai à mes besoin ?


class list
{
list *next;
list *previous;
list *search;
list *newElem;

public:

virtual list* addElem(list *pList)=0;
virtual void removeElem(list *pList)=0;
virtual void removeList(list *pList)=0;
};



D'avance merci.

Tintin 72

1 réponse

vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 12
11 févr. 2006 à 19:06
Une classe abstraite est une bonne idée mais la c'est un peu bizarre. addElem(list* pList) n'a pas trop de sens. Il te faudrait plutot un autre type element. Tu peux alors utiliser les templates pour avoir une liste polymorphique.

Donc je dirais que ton code ne correspond pas trop a ce que tu veux faire (notamment, next, previous, search et newElem ne devraient pas être dans la classe abstraite).

Si une liste est une spécialisation de l'autre, c'est l'héritage simple qu'il faut utiliser.
0