C ++: comparación de los operadores con funciones

los intrínseco tipos de datos se crean en lenguaje C ++, como int, flotador, y doble y los diversos tipos de puntero. C ++ permite que el programador para definir los operadores para las clases que el programador ha creado además de estos operadores intrínsecas. Se llama la sobrecarga de operadores.

Normalmente, la sobrecarga de operadores es opcional y no intentó comenzando por los programadores de C ++. Una gran cantidad de C ++ programadores con experiencia no creo que la sobrecarga de operadores es una gran idea tampoco. Sin embargo, tendrá que aprender a sobrecargar un operador: el operador de asignación.

Un operador es nada más que una función incorporada con una sintaxis peculiar. La siguiente operación de adición

Video: 10 Primeras funciones y operadores de referencia

a + b

podría entenderse como si estuviera escrita

operador + (a, b)

De hecho, C ++ da a cada operador de un nombre de estilo de función. El nombre funcional de un operador es el símbolo del operador precedido por la palabra clave operador y seguido por los tipos de argumentos correspondientes. Por ejemplo, el + operador que añade una int a una int la generación de una int se llama operador int + (int, int).

Cualquier operador existente puede ser definido para una clase definida por el usuario. Por lo tanto, podría crear una * operador complejo (complejo const&, Complejo const&) que me permitiría multiplicar dos objetos de tipo Complejo. El nuevo operador puede tener la misma semántica que el operador se sobrecarga, pero no tiene que hacerlo. Las siguientes reglas se aplican cuando la sobrecarga de operadores:

Video: Operadores de Comparacion y Texto en Excel 2013

  • El programador no puede sobrecargar el . (punto), :: (colon), .*, * -gt ;, sizeof y ?: (ternarios) operadores.

  • El programador no puede inventar un nuevo operador. Por ejemplo, no se puede inventar la operación x $ y.

  • La sintaxis de un operador no puede cambiarse. Por lo tanto, no se puede definir una operación %yo porque % ya se define como un operador binario.

  • La prioridad de los operadores no se puede cambiar. Un programa no puede forzar operador + para ser evaluados antes operador*.

  • Los operadores no pueden ser redefinidos cuando se aplica a tipos intrínsecos - no se puede cambiar el significado de 1 + 2. Los operadores existentes se pueden sobrecargar solo en los tipos recién definidos.

La sobrecarga de operadores es una de esas cosas que parece como una idea mucho mejor de lo que realmente es. Por lo general, la sobrecarga de operadores presenta más problemas de los que resuelve.

Artículos Relacionados