Sobrecarga del operador

Definición: ¿Qué significa sobrecarga del operador?

La sobrecarga de operadores es una técnica mediante la cual los operadores utilizados en un lenguaje de programación se implementan en tipos definidos por el usuario con una lógica personalizada que se basa en los tipos de argumentos pasados.

La sobrecarga de operadores facilita la especificación de la implementación definida por el usuario para operaciones en las que uno o ambos operandos son de clase definida por el usuario o tipo de estructura. Esto ayuda a que los tipos definidos por el usuario se comporten de manera muy similar a los tipos de datos primitivos fundamentales. La sobrecarga de operadores es útil en los casos en los que los operadores utilizados para ciertos tipos proporcionan semántica relacionada con el contexto del dominio y soporte sintáctico como se encuentra en el lenguaje de programación. Se utiliza por conveniencia sintáctica, legibilidad y facilidad de mantenimiento.

Java no admite la sobrecarga de operadores, excepto para la concatenación de cadenas para la que sobrecarga el operador + internamente.

Techinfo explica la sobrecarga del operador

Se hace referencia a los operadores mediante la notación de operador en expresiones y la notación funcional en declaraciones. La sintaxis, la precedencia y la asociatividad de un operador no se pueden cambiar utilizando declaraciones de operador definidas por el usuario.

Por ejemplo, los operadores en C # se clasifican según el tipo de operación que realizan. Algunos de ellos están sobrecargados en tipos definidos por el usuario al definirlos en funciones miembro estáticas y usar la palabra clave operator. Los parámetros de la función del operador representan los operandos, mientras que el tipo de retorno de una función del operador representa el resultado de la operación. La sobrecarga se implementa en pares para operadores, como operadores de comparación como "==" y "! =". El método Equals () para estos operadores debe anularse para evitar una advertencia del compilador. La sobrecarga no se debe utilizar para operadores como condicional, lógico (y !!), asignación (+ =, - =, etc.), conversión e indexación de matrices ([]).

Se recomienda encarecidamente que se implemente la sobrecarga del operador de manera que los resultados producidos sean los que se esperan intuitivamente de la implementación predeterminada del operador. Ciertas reglas matemáticas, como la ley conmutativa, aplicable a expresiones con dos operandos, no pueden aplicarse cuando se utilizan en la sobrecarga de tipos, ya que solo se definen para operandos numéricos.