O que é sobrecarga de operador?
Questão
O que é sobrecarga de operador?
Alternativas
A) É a capacidade de uma classe ter diversos operadores com nomes diferentes, mas com parâmetros iguais.
B) É a capacidade de uma classe não ter operadores.
C) É a capacidade de uma classe ter apenas um operador com vários parâmetros diferentes.
D) É a capacidade de uma classe ter apenas um operador com o mesmo nome e mesmo número de parâmetros.
E) É a capacidade de uma classe ter diversos operadores diferentes com o mesmo nome.
Explicação
Sobrecarga de operador (operator overloading) é o recurso (comum em linguagens como C++ e também presente em outras, com regras próprias) que permite definir/reescrever o comportamento de operadores (como +, -, *, ==, [], etc.) para tipos definidos pelo usuário (classes/structs).
Em outras palavras: você pode ter o “mesmo operador” (mesmo símbolo/nome) funcionando de formas diferentes, dependendo do(s) tipo(s) e/ou assinatura (parâmetros) envolvidos. Exemplo intuitivo: o operador + pode somar números, concatenar strings e também pode ser definido para somar vetores/complexos, etc.
Analisando as alternativas:
- A) Incorreta. Não faz sentido dizer “diversos operadores com nomes diferentes, mas com parâmetros iguais” como definição de sobrecarga.
- B) Incorreta.
- C) Incorreta. Não é “apenas um operador”; e “vários parâmetros diferentes” não define sobrecarga.
- D) Incorreta. Isso descreve ausência de sobrecarga (mesmo nome e mesmo número de parâmetros sem variação).
- E) É a que melhor expressa a ideia central: usar o mesmo nome/operador para comportamentos distintos (embora a redação “diversos operadores diferentes com o mesmo nome” esteja um pouco estranha, ela aponta para “mesmo operador/nome com implementações diferentes”).