12.213 cursos gratis
8.307.532 alumnos
Facebook Twitter YouTube
Busca cursos gratis:

Programación en C++

Autor: Josue Diaz Cuenca
Curso:
8,89/10 (458 opiniones) |69596 alumnos|Fecha publicación: 04/06/2004

Capítulo 25:

 Sobrecarga de funciones y operadores

Sobrecarga de funciones y operadores

C++ proporciona las herramientas necesarias que permiten definir funciones y operadores que utilizan el mismo nombre o símbolo que una función u operador incorporado. Estas funciones y operadores se dicen que están sobrecargados y se pueden utilizar para redefinir una función u operador definido.

Sobrecarga de funciones

En C++ dos o más funciones pueden tener el mismo nombre representando cada una de ellas un código diferente. Esta característica se conoce como sobrecarga de funciones.

Una función sobrecargada es una función que tiene más de una definición.

Estas funciones se diferencian en el número y tipo de argumentos, pero también hay funciones sobrecargadas que devuelven tipos distintos.

Sobrecarga se refiere al uso de un mismo nombre para múltiples significados de un operador o una función.

Dado el énfasis del concepto de clase, el uso principal de la sobrecarga es con las funciones miembro de una clase. Cuando más de una función miembro con igual nombre se declara en una clase, se dice que el nombre de la función está sobrecargado en esa clase. El ámbito del nombre sobrecargado es el de la clase.

La sobrecarga de funciones amigas es similar a la de funciones miembro, con la única diferencia de que es necesaria la palabra reservada friend al igual que en la declaración de cualquier función amiga.

Sobrecarga de operadores

De modo análogo a la sobrecarga de funciones, la sobrecarga de operadores permite al programador dar nuevos significados a los símbolos de los operadores existentes en C++.

C++ permite a los programadores sobrecargar a los operadores para tipos abstractos de datos.

Operadores que se pueden sobrecargar: +, -, *, /, %, ^, &, |, _, ', =, <, >, <=, >=, ++, --, <<, >>, ==, 0, %%, ||, +=, -=, *=, /=, %=, &=, |=, <<=, >>=, [ ], ( ), ->, ->*, new, delete

Si un operador tiene formatos unitarios y binarios (tales como + y &) ambos formatos pueden ser sobrecargados. Un operador unitario tiene un parámetro, mientras que un operador binario tiene dos. El único operador ternario, ?:, no se puede sobrecargar.

Existen una serie de operadores que no se pueden sobrecargar: ., ::, ?:, sizeof

La sobrecarga de operadores en C++ tiene una serie de restricciones que es necesario tener presente a la hora de manejar operadores sobrecargados:

* Se pueden sobrecargar sólo los operadores definidos en C++

* La sobrecarga de operadores funciona sólo cuando se aplica a objetos de una clase

* No se puede cambiar la preferencia o asociatividad de los operadores en C++

* No se puede cambiar un operador binario para funcionar con un único objeto

* No se puede cambiar un operador unitario para funcionar con dos objetos

* No se puede sobrecargar un operador que funcione exclusivamente con punteros

La clave para la sobrecarga de un operador es una función incorporada a C++ que permite al programador sustituir una función definida por el usuario para uno de los operadores existentes.

Para sobrecargar un operador, se debe definir lo que significa la operación relativa a la clase a la cual se aplica. Para hacer esta operación, se crea una función operador, que define su acción. El formato general de una función operador es el siguiente: tipo nombre_clase::operator op (lista_argumentos) {...}

tipo es el tipo del valor devuelto por la operación especificada. Los operadores sobrecargados, con frecuencia tienen un valor de retorno que es del mismo tipo que la clase para la cual el operador se sobrecarga.

Las funciones operador deben ser miembro o amigas de la clase que se está utilizando.

Las funciones operador tienen la misma sintaxis que cualquier otra, excepto que el nombre de la función es operator op, donde op es el operador que se sobrecarga.

Capítulo siguiente - Funciones operador
Capítulo anterior - Funciones amigas

Nuestras novedades en tu e-mail

Escribe tu e-mail:

Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Cursos similares a Programación en C++


  • Vídeo
  • Alumnos
  • Valoración
  • Cursos
1. C# Curso de Programación
Curso Básico de programación en C#, este curso básico abarcará desde las bases del... [14/07/05]
15.672  
2. Programación estructurada
Este curso les ayudará a tener conceptos básicos de la programación. Estos... [25/04/07]
3.025  
3. Programación estructurada (primera parte)
Aprende, en el mundo de la informática, la programación estructurada: en qué... [16/10/08]
4.454  

El blog de mailxmail|¿Qué es mailxmail.com?|ISSN: 1699-4914|Ayuda
Publicidad|Condiciones legales de mailxmail


¿Te gustaría visitar más cursos gratis de Programación?