C ++

Sobrecarga del operador C ++

Sobrecarga del operador C ++
Este artículo proporciona una guía para la sobrecarga del operador en C++. La sobrecarga del operador es una característica útil y poderosa del lenguaje de programación C ++. C ++ permite la sobrecarga de la mayoría de los operadores integrados. En este tutorial, usaremos varios ejemplos para demostrar el mecanismo de sobrecarga del operador.

¿Qué es el operador??

Un operador es un símbolo que indica al compilador que realice una operación en particular. Por ejemplo, hay varios tipos de operadores en C ++, como operadores aritméticos, operadores lógicos, operadores relacionales, operadores de asignación, operadores bit a bit y más.

¿Qué es la sobrecarga del operador??

El lenguaje C ++ permite a los programadores dar significados especiales a los operadores. Esto significa que puede redefinir el operador para los tipos de datos definidos por el usuario en C++. Por ejemplo, "+" se usa para agregar tipos de datos integrados, como int, float, etc. Para agregar dos tipos de datos definidos por el usuario, es necesario sobrecargar el operador "+".

Sintaxis para la sobrecarga del operador

C ++ proporciona una función especial llamada "operador" para la sobrecarga del operador. La siguiente es la sintaxis para la sobrecarga de operadores:

clase sampleClass

..
Público:
returnType operador símbolo (argumentos)
..

..
;

Aquí, "operador" es una palabra clave y "símbolo" es el operador que queremos sobrecargar.

Ejemplos de

Ahora que comprende el concepto general de sobrecarga del operador, veamos un par de programas de ejemplo de trabajo para que comprenda esta idea de manera más concreta. Cubriremos los siguientes ejemplos:

  1. Ejemplo 1: Sobrecarga del operador unario (1)
  2. Ejemplo 2: Sobrecarga del operador unario (2)
  3. Ejemplo 3: Sobrecarga del operador binario
  4. Ejemplo 4: Sobrecarga del operador relacional

Ejemplo 1: Sobrecarga del operador unario (1)

En este ejemplo, demostraremos cómo un operador unario puede sobrecargarse en C++. Hemos definido la clase, "Square_Box", y las funciones públicas, "operator ++ ()" y "operator ++ (int)", para sobrecargar tanto el prefijo como los operadores de incremento de sufijo. En la función "main ()", hemos creado el objeto, "mySquare_Box1.”A continuación, hemos aplicado los operadores de incremento de prefijo y sufijo al objeto“ mySquare_Box1 ”para demostrar la sobrecarga del operador unario.

#incluir
usando el espacio de nombres std;
clase Square_Box

privado:
longitud del flotador;
ancho del flotador;
altura del flotador;
público:
Caja cuadrada()
Square_Box (flotador l, flotador w, flotador h)

longitud = l;
ancho = w;
altura = h;

// Operador sobrecarga - operador de prefijo "++"
operador vacío ++ ()

longitud ++;
ancho ++;
altura ++;

// Sobrecarga del operador - Operador de sufijo "++"
operador vacío ++ (int)

longitud ++;
ancho ++;
altura ++;

salida vacía ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int main ()

Square_Box mySquare_Box1 (3.0, 5.0, 6.0);
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.producción();
mySquare_Box1 ++;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.producción();
++mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.producción();
return 0;

Ejemplo 2: Sobrecarga del operador unario (2)

Este es otro ejemplo en el que demostraremos cómo un operador unario puede sobrecargarse en C++. Hemos definido la clase, "Square_Box", y las funciones públicas, "operador - ()" y "operador - (int)", para sobrecargar los operadores de decremento de prefijo y sufijo. En la función "main ()", hemos creado el objeto "mySquare_Box1". Luego aplicamos los operadores de decremento de prefijo y sufijo al objeto "mySquare_Box1".

#incluir
usando el espacio de nombres std;
clase Square_Box

privado:
longitud del flotador;
ancho del flotador;
altura del flotador;
público:
Caja cuadrada()
Square_Box (flotador l, flotador w, flotador h)

longitud = l;
ancho = w;
altura = h;

// Operador sobrecarga - operador de prefijo "-"
operador vacío - ()

largo--;
ancho--;
altura--;

// Operador de sobrecarga - "-" operador de sufijo
operador vacío - (int)

largo--;
ancho--;
altura--;

salida vacía ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int main ()

Square_Box mySquare_Box1 (3.0, 5.0, 6.0);
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.producción();
mySquare_Box1--;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.producción();
--mySquare_Box1;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.producción();
return 0;

Ejemplo 3: Sobrecarga del operador binario

Ahora, veremos un ejemplo de sobrecarga de operadores binarios. La sintaxis para la sobrecarga de operadores binarios será algo diferente de la sobrecarga de operadores unarios. En este ejemplo, sobrecargaremos el operador "+" para agregar dos objetos "Square_Box".

#incluir
usando el espacio de nombres std;
clase Square_Box

privado:
longitud del flotador;
ancho del flotador;
altura del flotador;
público:
Caja cuadrada()
Square_Box (flotador l, flotador w, flotador h)

longitud = l;
ancho = w;
altura = h;

// Operador sobrecarga - operador "+"
Operador Square_Box + (const Square_Box & obj)

Square_Box temp;
temperatura.longitud = longitud + obj.largo;
temperatura.ancho = ancho + obj.ancho;
temperatura.altura = altura + obj.altura;
temperatura de retorno;

salida vacía ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int main ()

Square_Box mySquare_Box1 (3.0, 5.0, 6.0), mySquare_Box2 (2.0, 3.0, 5.0), resultado;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.producción();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.producción();
resultado = mySquare_Box1 + mySquare_Box2;
cout << "Dimensions of resultant square box = " << endl;
resultado.producción();
return 0;

Ejemplo 4: Sobrecarga del operador relacional

Ahora, veremos un ejemplo de sobrecarga de operadores relacionales. La sintaxis para la sobrecarga de operadores relacionales es como la de la sobrecarga de operadores binarios. En este ejemplo, sobrecargaremos el "<” and “>"Operadores para aplicar a los objetos" Square_Box ".

#incluir
usando el espacio de nombres std;
clase Square_Box

privado:
longitud del flotador;
ancho del flotador;
altura del flotador;
público:
Caja cuadrada()
Square_Box (flotador l, flotador w, flotador h)

longitud = l;
ancho = w;
altura = h;

// Sobrecarga del operador - "<" operator
operador bool < (const Square_Box& obj)

si (longitud < obj.length)
devuelve verdadero;
demás
falso retorno;

// Operador sobrecarga - operador ">"
operador bool> (const Square_Box & obj)

si (longitud> obj.largo)
devuelve verdadero;
demás
falso retorno;

salida vacía ()

cout << "\tLength = " << length << endl;
cout << "\tWidth = " << width << endl;
cout << "\tHeight = " << height << endl;
cout << endl;

;
int main ()

Square_Box mySquare_Box1 (2.0, 3.0, 5.0), mySquare_Box2 (4.0, 6.0, 8.0);
resultado bool;
cout << "Dimensions of mySquare_Box1 = " << endl;
mySquare_Box1.producción();
cout << "Dimensions of mySquare_Box2 = " << endl;
mySquare_Box2.producción();
resultado = mySquare_Box1 < mySquare_Box2;
cout << "mySquare_Box1 < mySquare_Box2 = " << result < mySquare_Box2;
cout < mySquare_Box2 = " << result << endl;
return 0;

Conclusión

C ++ es un lenguaje de programación flexible y de propósito general que se usa ampliamente en una variedad de dominios. Este lenguaje de programación admite polimorfismo tanto en tiempo de compilación como en tiempo de ejecución. Este artículo le mostró cómo realizar la sobrecarga del operador en C++. Esta es una característica muy útil de C ++ que agrega un esfuerzo adicional para que el desarrollador defina el operador para la sobrecarga, pero definitivamente le facilita la vida al usuario de la clase.

Las mejores aplicaciones de mapeo de gamepad para Linux
Si te gusta jugar juegos en Linux con un gamepad en lugar de un sistema de entrada de teclado y mouse típico, hay algunas aplicaciones útiles para ti....
Herramientas útiles para jugadores de Linux
Si le gusta jugar juegos en Linux, es probable que haya utilizado aplicaciones y utilidades como Wine, Lutris y OBS Studio para mejorar la experiencia...
Juegos HD remasterizados para Linux que nunca tuvieron un lanzamiento de Linux antes
Muchos desarrolladores y editores de juegos están creando una remasterización HD de juegos antiguos para extender la vida útil de la franquicia, por f...