Programmation/Surcharge
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.
La signature d'une fonction
[modifier | modifier le wikicode]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'autorisent 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 autorisent 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)