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

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)

Exemples modifier

Voir aussi modifier