Classe abstraite ??

Signaler
Messages postés
122
Date d'inscription
mercredi 16 avril 2003
Statut
Membre
Dernière intervention
22 juillet 2006
-
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
-
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

Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
10
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.