Em C++ é possível utilizar um mesmo nome de função para declarar diferentes tipos de parâmetros. A invocação da função irá determinar qual a função a utilizar. A diferença das várias funções com o mesmo nome é determinada com base quer no tipo dos argumentos quer no seu número.
int inc(int x) { return(x+1); } int inc(int x,int y) { return(x+y); } float inc(float x) { return(x+1); } void main() { int x=2; float y=2.0; printf(''\nInc(x) = %d'',inc(x)); printf(''\nInc(x,x) = %d'',inc(x,x)); printf(''\nInc(y) = %f'',inc(y)); }