Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Código não compila - Exercício 7

07 - Para saber mais: Mais usos de sobrecargas

Referente ao código abaixo, fiquei com uma duvida. Ele é uma sobrecarga de outro método que recebe dois argumentos ou ele deveria funcionar do jeito que está? Fiz o teste somente com esse método e ele não compila, pois apesar de ter uma certa recursividade, ainda sim o método precisa de três argumentos para funcionar.

public double Maior(double a, double b, double c) { double maiorEntreAeB = Maior(a, b); return Maior(maiorEntreAeB, c); }

Neste outro exemplo acontece a mesma coisa e também tem um errinho de digitação. ppublic double Maior(double a, double b, double c) { return Maior(Maior(a, b), c); }

3 respostas

Você pode postar o código completo e formatado? Qual é o erro que o compilador apresenta?

solução!

Olá, Marcos. Tudo bom?

Os métodos Maior(double a, double b, double c) e Maior(double a, double b) são métodos diferentes!

Sobrecarga é a prática de oferecer mais de uma definição para o mesmo nome de método. No caso, temos o método Maior de 3 e outro de 2 argumentos.

No exemplo deste texto, o método de 3 argumentos faz uso do método de 2. Para sua aplicação compilar e funcionar, é necessário a definição das 2 sobrecargas:

public double Maior(double a, double b)
{
    if (a > b)
    {
        return a;
    }
    return b;
}

//Sobrecarga que usa o método definido acima.
public double Maior(double a, double b, double c)
{
    double maiorEntreAeB = Maior(a, b);
    return Maior(maiorEntreAeB, c); 
}

Tudo bem? Resolvi sua dúvida? Caso você ainda esteja com dúvidas, poderia compartilhar seu código conosco?

Abs

Tudo bem, era isso mesmo, pra mim não ficou claro que era uma sobrecarga do método anterior.

Obrigado.