Surcharge (programmation informatique)

La surcharge (également connue sous le nom de surdéfinition, polymorphisme ad hoc ou overloading en anglais) est une possibilité offerte par certains langages de programmation qui permet de choisir entre différentes versions d'une même fonction ou méthode selon le nombre et le type des arguments fournis.

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 ».

Surcharge d'opérateurs

La surcharge des opérateurs tels que +, -, ou * peut surprendre le lecteur d'un programme, en autorisant le programmeur à donner à une même fonction des fonctionnalités subtilement différentes en fonction des types de ses opérandes, pour gagner en lisibilité[1].

Catalogue


Exemple de surcharge en C++

Un exemple classique de surcharge en C++, la conversion de différents types en chaîne de caractère. À noter que dans ce cas de figure nous préférerons l'utilisation des templates.

#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::string msg = "Ton age est de " + toString(age) + " ans";
    std::cout<<msg<<std::endl;
    return 0;
}

Notes et références

Voir aussi

  • Portail de la programmation informatique
Cet article est issu de Wikipedia. Le texte est sous licence Creative Commons - Attribution - Sharealike. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.