Solution de l’exercice 8.2

Outre le destructeur, les méthodes avance, valeur, insere et supprime sont virtuelles. Il s’agit d’un choix évident, ne serait-ce que parce que la classe dérivée ne les implante pas de la même façon ; ce sont manifestement des opérations qui dépendent tout à fait du type de liste implémentée. Les méthodes recule et nombre_elt, vu leur extrême simplicité, n’ont pas besoin d’être virtuelles. Quant à la méthode affiche, il n’y a pas de raison en principe de la redéfinir ultérieurement (ce n’est pas le cas en tous cas dans listetab) ; ce choix est cependant plus discutable, il dépend de ce que l’on estime acceptable comme type de donnée dérivée de liste. Si seules les listes sont acceptées, il n’y a aucun problème. Si des données plus complexes (matrices par exemple) sont acceptables, il faut déclarer la méthode comme virtuelle, car une matrice n’est pas affichée de la même façon qu’une liste.


Retour au texte.