A sobrecarga de funções é o mecanismo que permite que duas o...

Próximas questões
Com base no mesmo assunto
Q91121 Programação
Com relação às técnicas de programação orientada a objetos, julgue
os itens a seguir.

A sobrecarga de funções é o mecanismo que permite que duas ou mais funções compartilhem o mesmo nome. Em C++, a sobrecarga exige que os parâmetros sejam diferentes, no entanto, ao assumir valores padrão para alguns dos parâmetros, a sobrecarga fica comprometida. Considerando as funções a seguir, a instrução Imagem 001.jpg é ambígua, já que não é possível saber qual das duas funções deve ser chamada.
Imagem 002.jpg
Alternativas

Comentários

Veja os comentários dos nossos alunos

Alguém comenta ? ...
só se for no C++ mesmo, porque no Java funciona perfeitamente. Tomando como base o exemplo da questão o método a ser invocado seria o segundo (int minhafuncao (float a, float b).
Em C++ não existe sobrecarga de função. Por isso que a instrução é ambígua, pois o compilador não irá fazer distinção de funções pelo número ou tipo de parâmetro, mas sim exclusivamente pelo nome da função.

C++ permite sim sobrecarga, e além disse permite valores padrões para alguns parâmetros.

A chamada é ambígua porque a precisão (terceiro parâmetro) possui um valor padrão = 3 (utilizado no caso do desenvolvedor não mandar um valor diferente de precisão)

Ao chamarmos a função com apenas os 2 primeiros parâmetros float o compilador fica na dúvida se estamos utilizando a primeira função com o 3º paramêtro padrão, valor 3, ou se estamos chamando a segunda função, que realmente só tem dois parâmetros.

Sobrecarga- Métodos com o mesmo nome + Assinaturas diferentes (num,tipo,ordem dos parâmetros)

Sobrescrita - Métodos com o mesmo nome + Mesma Assinaturas (num,tipo,ordem dos parâmetros)

 

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo