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 "ajouter" qui prend comme entrée 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 chiffres décimaux, cependant, cette functL'ion 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 «Ajouter» 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 numéro décimales.
En modifiant simplement le type de retour Of Une fonction, cependant, n'est pas considérée 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 nombre entier, ou vice versa, car il a le même nom. Des paramètres ambigus comme ceux-ci doivent être évités si possible, et s'ils ne peuvent pas l'être, un grand soin doit être pris pour s'assurer que la fonction surchargée appropriée est appelée aux temps appropriés.
La surcharge de la fonction est utile pour créer des fonctions connexes avec des types d'entrée variés, et il donne au code beaucoup de flexibilité. Une dernière considérationSur les fonctions surchargées, les commentaires adéquats sont essentiels. Bien qu'il puisse être clair en différents paramètres d'entrée quelle version d'une fonction surchargée convient à une situation particulière, il n'est pas toujours clair précisément ce que la fonction fait différemment de ses autres partenaires surchargés.