Ir para conteúdo
Fórum Script Brasil
  • 0

Sobrecarga


Guest Guest

Pergunta

Ae pessoal, to precisando de uma luz sobre sobrecargas, pra que serve, quando usar. O meu professor deu uma aula disso, mas eu praticamente não entendi nada, valeu!!!

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Ae pessoal, to precisando de uma luz sobre sobrecargas, pra que serve, quando usar. O meu professor deu uma aula disso, mas eu praticamente não entendi nada, valeu!!!

Você vai usar sobrecarga quando quiser que um método de mesmo nome tenha assinaturas diferentes, ou seja, receba parâmetros diferentes (sobrecarga de métodos). Se você possui um método somar, por exemplo:

int somar(int n1, int n2);
Note que ele recebe dois inteiros e retorna um inteiro. Mas, e se eu quiser passar doubles e receber um double? Eu posso fazer isso com essa função? A resposta é "não". Isso porque ela só aceita inteiros e só vai devolver um inteiro. Terei eu que criar um "somar_doubles", porque o nome "somar" já está sendo utilizado por ela? Antigamente e em certas linguagens você precisa fazer isso. Todavia, a sobrecarga é justamente o mecanismo que permite que uma mesma função tenha uma declaração diferente, portanto...
int somar(int n1, int n2);
double somar(double n1, double n2);

... são declarações válidas. Quando ambos os argumentos forem inteiros, será utilizada a primeira; quando ambos forem duplos, será a utilizada a segunda.

Outro tipo de sobrecarga é a sobrecarga de operadores. Você pode fazer 1+4 e sabe que o retorno será a soma desses inteiros (ou seja, 5). O mesmo se dá com floats e doubles, por exemplo. Mas, e se você tem uma classe própria sua? Qual seria o retorno de uma soma entre um objeto da sua classe e um inteiro? Ou de dois objetos da sua classe? A sobrecarga do operador + faz justamente com que você possa controlar esse comportamento e decidir qual será o retorno. E, é claro, você pode sobrecarregar quaisquer outros operadores (-, /, *, <<, >>, <, >, ==, !=, etc.). Você poderia utilizar o operador > (maior que), por exemplo, para retornar se um cliente comprou mais do que outro, por exemplo.

Sacou? wink.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...