class SupportADessin - méthodes dessine()

class SupportADessin - méthodes dessine()

by Augustin Jean Robert Pelletier -
Number of replies: 1

Bonjour,

Dans l'exercice P8 il est donné un exemple de classe SupprtADessin contenant une méthode dessine() pour les cônes simple et une pour un système. Pour dessiner un système il faut dessiner ses toupies. Nous avons donc itéré sur la collection de toupies du système [SUPPRIMÉ] Seulement quand on dessine ces objets, c'est la fonction dessine de la classe toupie qui est appelée et pas celle de cône simple, malgré le fait [SUPPRIMÉ ; remplacé : que je pense avoir tout fait pour].

Cela ne pose pas de problème pour le textviewer mais j'imagine que lorsque l'on dessinera graphiquement, on aura des dessins différents selon les sous-classes de toupie.

Une autre possibilité aurait été de faire hériter la classe Dessinable directement à Cône simple, et pas à Toupie, mais cela pose un problème quand on itère sur des [SUPPRIMÉ] toupies pour dessiner un système.

Auriez-vous donc une piste pour résoudre cela?

Merci d'avance

(Modifié par Jean-Cédric Chappelier : Veuillez NE PAS DONNER D'INDICATION sur la conception du projet !!)


In reply to Augustin Jean Robert Pelletier

Re: class SupportADessin - méthodes dessine()

by Jean-Cédric Chappelier -

Avant tout : ne donnez pas tant de détails de conception ni d’implémentation de votre projet !!

Si nécessaire, reformulez dans un autre cadre (d'ailleurs, le faire vraiment [= créer un autre code plus simple] vous permettrait très certainement de trouver la réponse)

Pour vous répondre : revenez aux fondamentaux du cours ; vous ne pouvez pas ne pas avoir de polymorphisme (y compris donc sur le dessin) si vous avez vraiment suivi tous les principes (pointeurs + virtual). Si ce n'est pas le cas c'est que vous avez cassé quelque chose quelque part (soit oublié un virtual, soit, par exemple, travaillé sur une copie au lieu d'un pointeur/d'une référence).
Bref, revenez aux fondamentaux (et faire ce qui DOIT être), plutot que de chercher des chemins détournés qui, en effet, posent plus de problèmes qu'ils n'en résolvent.