Sobrecarga de operadores
Enviado por Taty120900 • 27 de Enero de 2020 • Síntesis • 2.071 Palabras (9 Páginas) • 211 Visitas
ESCUELA SUPERIOR[pic 1][pic 2]
POLITÉCNICA
DE CHIMBORAZO
FACULTAD DE INFORMÁTICA
Y ELECTRÓNICA
SOFTWARE
Nombre: Tatiana Carrillo
Código: 6768
Materia: Paradigma Orientado a Objetos
Tema: Sobrecarga de operadores
Curso: Segundo A
Tabla de contenido
SOBRECARGA DE OPERADORES 3
Objetivos 3
Objetivo General 3
Objetivos Específicos 3
Introducción 4
Desarrollo 5
Lista de operadores válidos en C++ 5
Sintaxis 5
Algunas limitaciones para la sobrecarga de operadores 5
Operadores unitarios 6
Operadores binarios 9
Conclusiones 12
Recomendaciones 12
Bibliografía 12
SOBRECARGA DE OPERADORES
Objetivos
Objetivo General
- Realizar una investigación bibliográfica referente a sobrecarga de operadores
Objetivos Específicos
- Establecer la definición de sobrecarga de operadores
- Realizar una búsqueda de temas particulares de mencionado tema
- Elaborar ejemplos prácticos donde se evidencie los temas de consulta
Introducción
Un operador sobrecargado es aquel al que se le ha dado más de una función, por ejemplo, el operador <<, este operador ha sido sobrecargado por el mismo lenguaje C++, así se le puede emplear como operador de desplazamiento de bits (a=b<<3;) o como operador de flujo de datos (cout << "mensaje").
La sobrecarga de operadores es uno de los mecanismos que nos permite ampliar las capacidades de los lenguajes de programación orientados a objetos. En C++, la declaración y definición de una sobrecarga de operador es muy similar a la declaración y definición de una función cualquiera. El ejemplo más sencillo de una sobrecarga de operadores nos lo da el lenguaje mismo, es decir, en una operación aritmética (por ejemplo, una suma) el compilador determina el tipo de operación requerida de acuerdo con el tipo de datos involucrados.
Desarrollo
En realidad, la mayoría de los operadores en C++ ya están sobrecargados. Por ejemplo, el operador + realiza distintas acciones cuando los operandos son enteros, o en coma flotante. En otros casos esto es más evidente, por ejemplo, el operador * se puede usar como operador de multiplicación o como operador de dirección.
C++ permite al programador sobrecargar a su vez los operadores para sus propios usos o para sus propios tipos.
Lista de operadores válidos en C++
+ | - | * | / | % | ^ | & | | |
~ | ! | , | = | < | > | <= | >= |
++ | -- | << | >> | == | != | && | || |
+= | -= | *= | /= | %= | ^= | &= | |= |
<<= | >>= | [ ] | ( ) | -> | ->* | new | delete |
Sintaxis
Tipo Nombre de la Clase :: operator
}
Algunas limitaciones para la sobrecarga de operadores
- Se pueden sobrecargar todos los operadores excepto “.”, “.*”, “::”, “?:”, sizeof y typeid.
- Los operadores "=", "[]", "->", "()", "new" y "delete", sólo pueden ser sobrecargados cuando se definen como miembros de una clase.
- Los argumentos deben ser tipos enumerados o estructurados: struct, union o class.
- El número de argumentos viene predeterminado dependiendo del operador.
- Podemos sobrecargar tanto operadores unarios como binarios:
- tipo_ret operator op_unario (tipo1 arg1);
- tipo_ret operator op_binario (tipo1 arg1, tipo2 arg2);
Operadores unitarios
También es posible sobrecargar los operadores de pre-incremento, post-incremento, pre-decremento y post-decremento.
De hecho, es posible sobrecargar otros operadores de forma unitaria, como el +, -, * o & de forma prefija.
En estos casos, el operador sólo afecta a un operando.
Ejemplo 1
En este ejemplo se evidencia el operador unario sobrecargado (++)
// Autor: Tatiana Carrillo
#include
#include
using namespace std;
...