Em ANSI-C, duas funções devem ter nomes obrigatoriamente únicos. Em C ++, uma vez que o mecanismo de prototipagem permite identificar uma função por seu nome e seus argumentos, é possível repetir nome de funções -- é o mecanismo de sobrecarga. Este mecanismo é frequentemente utilizado na programação orientada a objetos.
O exemplo abaixo ilustra o uso deste mecanismo. Neste caso, três funções são definidas com o mesmo nome. No momento da chamada, o compilador seleciona a função correta com base em seu nome e no número de e tipos dos parâmetros formais.
indentation
12 squared is 144 24 squared is 576 Three lengths is 42 Three heights is 102 The average is 24.330002
Observe que o tipo de retorno da função não é um critério de seleção para determinar qual função será chamada.
A palavra chave overload dá uma indicação que o nome a seguir, neste caso do_stuff, será conscientemente sobrecarregado, e que isto não está acontecendo por engano. Entretanto, esta palavra chave era apenas obrigatória em versões mais antigas de C ++; correntemente, este mecanismo é tão utilizado que usar sobrecarga é a situação padrão, não sendo necessário indicar mais seu uso. A opção de uso desta palavra é mantido por questões de compatibilidade com códigos de versões anteriores.
Deve-se ainda observar que a seleção da função é feita em tempo de compilação, e não em tempo de execução. Desta forma, não há prejuízo no desempenho do programa ao se utilizar este mecanismo. Mesmo que cada uma destas funções tivesse um nome único não haveria diferença no tamanho do programa ou em seu tempo de execução.