Vidéo "étude de cas" (héritage)

Re: Vidéo "étude de cas" (héritage)

by Jean-Cédric Chappelier -
Number of replies: 0

oui c'est essentiellement pour cela (et aussi parce que la donnée nous le demande ;-) ); mais plus pour des raisons de conception (= concepts) que « parce que le compilateur ne comprends pas » :
conceptuellement si on ne fait que combattre des Dragon et des Hydre, alors cela n'a rien à voir avec les Creature, en général.

Maintenant, comme évoqué à la fin de l'étude, on peut très bien concevoir que l'on veuille faire combattre n'importe quelles créatures entre elles (et ce sera certainement le cas dans un vrai jeu) et donc avoir :
void combat(Creature&, Creature&);
Ce qui, en effet pourrait tout aussi bien être:
void Creature::combat(Creature& autre);
en suivant les mêmes principes que ceux évoqués pour la surcharge des opérateurs (il n'y a pas de nouvelle créature et on pourrait avoir besoin d'accéder aux parties privées).
C'est, en fait, exactement l'objet des deux prochaines leçons : le polymorphisme.
La raison donc de ce choix dans la donnée est simplement qu'à ce stade là on ne saurait pas encore comment faire.
Donc, bravo pour votre compréhension !