Skip to main content

Qu'est-ce que la surcharge de fonction?

La surcharge de fonction est une caractéristique de nombreux langages de programmation où plusieurs méthodes peuvent être créées avec le même nom mais avec des paramètres d'entrée ou des types de retour différents.Il s'agit d'une caractéristique commune dans la programmation orientée objet;Les constructeurs en particulier peuvent avoir plusieurs variantes surchargées différentes.Essentiellement, la surcharge des fonctions est utile lorsque deux fonctions font des choses très similaires et peuvent prendre plusieurs types d'entrée pour le faire.Les constructeurs peuvent être surchargés facilement car ils n'ont pas de type de retour explicite spécifié, donc le simple fait de modifier les paramètres d'entrée d'un constructeur serait une surcharge valide.

La première façon dont une fonction peut être surchargée est de modifier ses paramètres d'entrée.Par exemple, on peut considérer une fonction appelée ADD qui prend comme ses entrées deux nombres entiers.Le but de cette fonction est assez évident;Il est destiné à trouver la somme de deux nombres entiers.

Si l'on voulait trouver la somme de deux flotteurs ou des nombres décimaux, cependant, cette fonction ne serait pas applicable.Ainsi, une deuxième fonction surchargée serait nécessaire, définie comme une fonction appelée ADD qui prend comme ses deux flotteurs.Les fonctions font essentiellement la même chose, mais la surcharge des fonctions est nécessaire car leurs entrées sont significativement différentes.

La deuxième façon dont une fonction peut être surchargée est de modifier ses paramètres d'entrée et son type de retour.En utilisant l'exemple précédent, on peut considérer si les deux fonctions Add surchargées avaient un type de retour vide;c'est-à-dire qu'ils n'ont rien retourné.Ce serait toujours une surcharge de fonctions valide, mais les types de retour des deux méthodes pourraient également être modifiés.Dans une autre instance valide de surcharge, la fonction ADD qui prend deux nombres entiers pourrait renvoyer toute la somme du nombre, et la fonction ADD qui prend deux nombres décimaux pourrait renvoyer cette somme de nombres décimales.

En modifiant simplement le type de retour d'une fonction, cependant, n'est pas considéré comme une surcharge de fonction valide.Le changement uniquement du type de retour d'une fonction entraîne une ambiguïté, car il n'est pas clair à partir de la signature de la méthode qui est souhaité.Les paramètres peuvent également être définis de manière ambiguë, il est donc très important que les fonctions surchargées soient appelées correctement.Par exemple, si l'un a une fonction surchargée qui a un nombre entier comme paramètre d'entrée, et un autre qui a un numéro décimal comme paramètre, il serait très facile pour quelqu'un d'appeler accidentellement la fonction de numéro décimal au lieu de la fonction de numéro entière, ou vice versa, car ils ont le même nom.Des paramètres ambigus tels que ceux-ci doivent être évités si possible, et s'ils ne peuvent pas l'être, un grand soin doit être pris, et cela donne à du code beaucoup de flexibilité.Une dernière considération sur les fonctions surchargées est que des commentaires adéquats sont essentiels.Bien qu'il puisse être clair par des paramètres d'entrée différents quelle version d'une fonction surchargée convient à une situation particulière, il n'est peut-être pas toujours clair précisément ce que la fonction fait différemment de ses autres partenaires surchargés.