La surchage permet d'employer le même nom pour différentes implémentations d'une fonction du moment que ces implémentations se distinguent par le type ou le nombre de leur paramètre.
typedef char *chaine ; void tri(char *) ; // tri d'un tableau de caracteres void tri(int *) ; // tri d'un tableau d'entier int t[25] ; tri(t) ;