Sobrecarga do operador

Definição - o que significa sobrecarga do operador?

A sobrecarga de operador é uma técnica pela qual os operadores usados ​​em uma linguagem de programação são implementados em tipos definidos pelo usuário com lógica customizada que é baseada nos tipos de argumentos passados.

A sobrecarga do operador facilita a especificação da implementação definida pelo usuário para operações em que um ou ambos os operandos são de classe definida pelo usuário ou tipo de estrutura. Isso ajuda os tipos definidos pelo usuário a se comportarem de maneira muito semelhante aos tipos de dados primitivos fundamentais. A sobrecarga do operador é útil nos casos em que os operadores usados ​​para certos tipos fornecem semântica relacionada ao contexto do domínio e suporte sintático conforme encontrado na linguagem de programação. É usado para conveniência sintática, legibilidade e manutenção.

Java não suporta sobrecarga de operador, exceto para concatenação de string para a qual sobrecarrega o operador + internamente.

Definirtec explica a sobrecarga do operador

Os operadores são referenciados usando notação de operador em expressões e notação funcional em declarações. A sintaxe, a precedência e a associatividade de um operador não podem ser alteradas usando declarações de operador definidas pelo usuário.

Por exemplo, os operadores em C # são categorizados com base no tipo de operação que executam. Alguns deles são sobrecarregados em tipos definidos pelo usuário, definindo-os em funções de membro estático e usando a palavra-chave operator. Os parâmetros da função do operador representam os operandos, enquanto o tipo de retorno de uma função do operador representa o resultado da operação. A sobrecarga é implementada em pares para operadores, como operadores de comparação como "==" e "! =". O método Equals () para esses operadores deve ser substituído para evitar um aviso do compilador. A sobrecarga não deve ser usada para operadores como condicional, lógico (e !!), atribuição (+ =, - =, etc.), conversão e indexação de matriz ([]).

É altamente recomendável que a sobrecarga do operador seja implementada de forma que os resultados produzidos sejam os que são intuitivamente esperados da implementação padrão do operador. Certas regras matemáticas, como a lei comutativa, aplicável a expressões com dois operandos, não podem ser aplicáveis ​​quando usadas na sobrecarga de tipos, pois são definidas apenas para operandos numéricos.