Vous avez des améliorations (ou des corrections) à proposer pour ce document :
je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Les concepts relatifs à l'héritage : Aspects fondamentaux
Considérons que nous cherchons à mettre en ?uvre un logiciel capable d'afficher des figures géométriques simples (représentation 2D).
Ces figures sont, notamment, définies par la connaissance du centre de gravité de la figure (question : comment représenter un point ?).
Nous pourrons déplacer ces figures géométriques :
Soit de manière absolue : en indiquant la nouvelle position
Soit de manière relative : en indiquant un vecteur de déplacement (question : comment représenter le vecteur ?).
Question : pourrait-on considérer implémenter un point et un vecteur avec une seule et unique classe ? Pourquoi ?
C++ Niveau 1 - Dominique Liard - 1999 .. 2019
<numéro>
Notes:
Trois questions sont ici posées. Prenons le temps de répondre à ces questions une à une. Premièrement, comment représenter un point dans le plan ? En réalité c'est le cahier des charges du logiciel à produire qui nous permettra de répondre à cette question. Effectivement on peut au minimum opter pour deux alternatives distinctes : soit en coordonnées polaires, soit en coordonnées cartésiennes. On imaginera que le cahier des charges nous fait plutôt opter pour la seconde solution. Mais même si l'on retient la première solution, comment représenter les différentes dimensions (des entiers, court, long, des flottants, ?) ? Encore une fois nous considérerons que le cahier des charges impose plutôt l'utilisation du type double pour représenter les différentes dimensions. Notez bien qu'il est très important de bien choisir les types de données utilisées : des mauvais choix peuvent impliquer des plus ou moins grosses difficultés pour la suite du développement.
Seconde question : comment représenter un vecteur de déplacement. Il semble raisonnable de dire que le cahier des charges risque d'imposer une implémentation assez proche de celle utilisée pour représenter les points.
Enfin, pouvons-nous n'utiliser qu'une seule classe pour implémenter les deux concepts de points et de vecteurs ? La réponse est bien entendu non ! Effectivement, un vecteur n'est pas un point et réciproquement. Que voudrait dire de normaliser un point ? En tout cas, mathématiquement parlant, c'est une opération non définie.
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :