Programmation/Surcharge
Un livre de Wikibooks.
Cette page est considérée comme une ébauche à compléter. Si vous possédez quelques connaissances sur le sujet, vous pouvez les partager en éditant dès à présent cette page (en cliquant sur le lien « modifier »).
Ressources suggérées : Aucune (vous pouvez indiquer les ressources que vous suggérez qui pourraient aider d'autres personnes à compléter cette page dans le paramètre « ressources » du modèle? engendrant ce cadre)
La surcharge consiste à créer plusieurs fonctions portant le même nom car réalisant la même chose, mais ayant une signature différente afin que le compilateur/interpréteur du langage puisse les distinguer.
Dans ce qui suit, le terme "fonction" peut désigner indifféremment fonction ou procédure.
[modifier] La signature d'une fonction
La signature d'une fonction est ce qui permet à un compilateur ou interpréteur d'identifier une fonction pour la distinguer d'une autre.
Certains langages de programmation n'autorise pas que deux fonctions portent le même nom, car celui-ci identifie la fonction. Pour ces langages, la signature d'une fonction correspond donc à son nom seul.
Les langages de programmation objet autorise plusieurs fonctions a porter le même nom, à condition que la liste des types des paramètres acceptés soit différente. La signature correspond donc au nom de la fonction et à la liste des types des paramètres de cette fonction.
Exemple :
afficher(valeur : ENTIER) afficher(valeur : RÉEL) afficher(chaine : CHAINE) afficher(valeur : RÉEL, nombre_de_décimales : ENTIER)
Lors de l'appel à la fonction "afficher", le compilateur ou l'interpréteur distingue laquelle il doit utiliser d'après le type des arguments.
Exemple :
afficher( "Exemple" ) -- appel à afficher(chaine : CHAINE) afficher( 5.1 ) -- appel à afficher(valeur : RÉEL)