Programmation/Surcharge

Un livre de Wikibooks.

Puzzle.svg
Ébauche

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)