Sobrecarga de funciones

Una de las maneras que tiene C++ de llegar al polimorfismo es a través de la sobrecarga de funciones. En C++, dos o más funciones pueden compartir un mismo nombre siempre y cuando difieran en la declaración de sus parámetros.

Las funciones que comparten el mismo nombre se dice que están sobrecargadas.

 

int Cuadrado (int i);

long Cuadrado (long l);

double Cuadrado (double x);

 

void main ( )

{

int i=1;

long l=3;

double x=0.45;

cout << "El cuadrado de un entero es: << Cuadrado (i) <<"\n";

cout << "El cuadrado de un long es: << Cuadrado (l) << "\n";

cout << "El cuadrado de un double es: << Cuadrado (x) << "\n";

}

 

int Cuadrado (int i)

{

return i*i;

}

 

long Cuadrado (long l)

{

return l*l;

}

 

double Cuadrado (double x)

{

return x*x;

}

Sobrecarga de operadores

 

Para sobrecargar un operador se debe definir que operación significa con relación a la clase a la que se aplica. Para hacer esto, hay que crear una función operador que defina su acción.

 

Forma general:

 

tipo nombreclase :: operator # (lista de argumentos)

{

 

}

 

# - es el operador que se quiere sobrecargar.

tipo - es el tipo de valor devuelto por la operación especificada, es con frecuencia, del mismo tipo que la clase para la cual se ha sobrecargado el operador.

 

El objeto causante de una llamada a un operador sobrecargado, siempre es el situado a la izquierda del operador.

 

En una expresión a+b donde a y b son objetos, a es el causante de la llamada (pasa su valor a través de this), mientras que el valor de b es recibido a través del paso de parámetros.

 

En general, cuando se usa una función miembro, no se necesitan parámetros al sobrecargar una operación monaria y solo se necesita un parámetro cuando se sobrecarga un operador binario.