¿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:
- Ejemplo 1: Sobrecarga del operador unario (1)
- Ejemplo 2: Sobrecarga del operador unario (2)
- Ejemplo 3: Sobrecarga del operador binario
- 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.
#incluirusando 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".
#incluirusando 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".
#incluirusando 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 ".
#incluirusando 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.