La surcharge est la possibilité de donner le même nom à des fonctions
différentes, la sélection étant faite sur le nombre et le type des
paramètres. Exemple:
void f(int) { cout << "f sur les entier" << endl; }
class montype { };
void f(montype) { cout << "f sur mon type" << endl; }
void f(int, int) { cout << "f/2" << endl; }
montype v;
f(1); f(v); f(1, 2);
Note: On ne peut pas surcharger sur le type renvoyé par une
fonction en C++.