salut,
merci de m'aider à résoudre ce question
quelle est la différence entre redéfinition et surdéfinition
et merci d'avance
salut,
merci de m'aider à résoudre ce question
quelle est la différence entre redéfinition et surdéfinition
et merci d'avance
Si je ne dit pas de bétise, cela s'applique surtout aux méthodes et fonctions. Une redéfinition fait que ta fonction est remplacée par celle que tu viens d'ecrire. mais elle est 100% identique dans son entete (meme nom, meme retour et meme arguments).
Une fonction ou une méthode surdéfinie par contre porte le meme nom mais possede des arguments differents. En function des types et nombre d'arguments, la fonction appelée serat donc différente.
La redéfinition c'est quand tu remplaces une fonction membre par une autre dans une classe fille, la surdéfinition c'est quand tu fournis une nouvelle définition d'une fonction pour une série d'arguments donnés.
La redéfinition c'est en fait plus ou moins pareil, puisqu'on peut voir l'objet comme étant un argument de la fonction.
Maintenant avec les fonctions membres virtuelles le choix de la fonction se fait en fonction du type dynamique et non plus statique comme pour la surdéfinition, mais dans un langage à typage dynamique comme CLOS c'est vraiment équivalent.
Boost ftw
En C++.
La redéfinition (override), c'est quand on supplante l'implémentation d'une fonction membre par une autre dans une classe fille -- il est nécessaire de jouer avec virtual pour disposer de ce mécanisme de liaison tardive. Le choix de la fonction appelée se fait dynamiquement (à l'exécution) en fonction du type dynamique exact de l'objet sur lequel la fonction est exécutée.
La surcharge (overload, que certains enseignants nomment "surdéfinition"), c'est quand on ajoute une nouvelle fonction (non nécessairement membre), qui porte le même nom qu'une autre fonction, et que l'on pourra distinguer (statiquement uniquement, i.e. à la compilation) à l'aide des paramètres d'appel qui diffèrent en nombre et/ou type.
Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager