Remove ads
ensemble de fonctions de même nom, en programmation logicielle De Wikipédia, l'encyclopédie libre
La surcharge de fonction (également connue sous le nom de surdéfinition, polymorphisme ad hoc ou overloading en anglais) est une possibilité offerte par certains langages de programmation de définir plusieurs fonctions ou méthodes de même nom, mais qui diffèrent par le nombre ou le type des paramètres effectifs.
Le polymorphisme ad hoc ne doit pas être confondu avec le polymorphisme d'inclusion des langages à objets, permis par l'héritage de classe et la redéfinition de méthode (overriding en anglais).
La surcharge peut être statique (le choix de la version est alors fait en fonction du nombre d'arguments et de leur type statique déclaré à la compilation) ou dynamique (le choix de la version est alors fait en fonction du type dynamique des arguments constaté à l'exécution). La surcharge dynamique est également appelée « dispatch multiple » et une méthode surchargée dynamiquement « multiméthode ».
La surcharge des opérateurs tels que +
, -
, ou *
permet au programmeur d'utiliser des opérateurs avec des types eux aussi définis par le programmeur. C'est utile lorsque ces types représentent des valeurs conventionnellement utilisées avec des opérateurs (nombre complexe[1], matrice[2]) ou sont très utilisés comme le type std::string
de C++.
Un exemple classique de surcharge en C++, la conversion de différents types en chaîne de caractère (assurée dans son standard par std::to_string
).
#include <iostream>
#include <string>
#include <sstream>
std::string toString(const double a) {
std::ostringstream strs;
strs << a;
return strs.str();
}
std::string toString(const unsigned int a) {
std::ostringstream strs;
strs << a;
return strs.str();
}
int main() {
unsigned int age = 10;
std::cout << "Ton age est de " << toString(age) << " ans" << std::endl;
}
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.