ExpertiDict

C++ · Essencial · Português · Técnico

sobrecarga de função

ˌsobɾeˈkaɾɡɐ dʒi fũˈsɐ̃w̃substantivo

Definir várias funções com o mesmo nome, mas parâmetros diferentes em número ou tipo. O compilador escolhe a versão certa na chamada, pela resolução de sobrecarga.

Onde usar

Comum em APIs como print(int) e print(double). Chamadas ambíguas geram erro de compilação, e conversões implícitas podem escolher uma versão inesperada.

Em código

void ver(int) { puts("int"); }
void ver(double) { puts("double"); }
int main() {
  ver(1);    // int
  ver(1.0);  // double
}

Exemplos

Tenho duas sobrecargas, uma para int e outra para double.

A chamada ficou ambígua porque nenhuma sobrecarga serve melhor.

Cuidado

O tipo de retorno sozinho não diferencia sobrecargas; os parâmetros precisam ser diferentes.

Sinônimos

overload

Veja também

Todos os termos de C++