ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Sobrecarga de funciones


Enviado por   •  13 de Julio de 2015  •  1.163 Palabras (5 Páginas)  •  124 Visitas

Página 1 de 5

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 función 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.

Ejemplo sobrecarga de funciones:

#include <iostream>

#include <stdlib.h>

using std::cout;

using std::cin;

using std::endl;

int cubo (int); //prototipo de función sobrecargada

double cubo(double);//prototipo de función sobrecargada

main()

{

int ix = 5;

double dx = 1.5;

cout << "El cubo de "<< ix << " es "<<cubo(ix) << endl;

//el compilador al ver un valor int elige la función

cout << "El cubo de " << dx << " es " <<cubo (dx) << endl;

//la llamada es igual con un valor double.

system("pause");

}

int cubo (int y ) //Función sobrecargada para valores int

{

return y*y*y;

}

double cubo (double y) //Función sobrecargada para valores double

{

return y*y*y;

}

Sobrecarga de operadores

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. Vamos a suponer que se tienen las variables: int A, B; double X, Y; int R; y las siguientes instrucciones:

R = A + B;

R = A + X;

R = X + Y;

Ahora bien:

• En el primer caso el compilador determina que el tipo de operación requerida es una suma de enteros debido a que los dos miembros ( A y B ) de la suma son del tipo entero.

• En el segundo caso parece ser que las cosas no son tan claras, ya que en este los miembros involucrados en la suma son de tipos diferentes, sin embargo el compilador determinará el tipo de operación requerida y depositará en el resultado ( R )el valor resultante redondeado.

• En el tercero y último de los casos el compilador determina que el tipo de operación requerida es una suma de reales debido a que los dos miembros ( X e Y ) de la suma son del tipo double. También en este caso el resultado de la suma se redondea antes de ponerlo en R

Para poner un ejemplo práctico de sobrecarga del operador de suma ( + ) vamos a considerar el caso de la clase pareja mostrada en seguida:

class Pareja {

public:

double a, b;

// constructor parametrizado

Pareja(const double a,const double b)

{

this->a = a;

this->b = b;

}

};

...

Descargar como (para miembros actualizados)  txt (6.5 Kb)  
Leer 4 páginas más »
Disponible sólo en Clubensayos.com