Sobre carga de subprogramas
En el mismo ámbito existen diferentes subprogramas con el mismo nombre.Cada versión debiera tener una firma diferente, de manera que a partir de los parámetros reales se pueda resolver a cual versión se refiere. Las versiones pueden diferir en la codificación Es una conveniencia notacional, que es evidente cuando se usan nombres convencionales, como en siguiente ejemplo
Sobrecarga de Funciones en C++ y Java double abs(double); int abs(int); abs(1); // invoca int abs(int); abs(1.0); // invoca double abs(double); // se sobrecargará print void print(int); void print (char*);
Un subprograma sobrecargará un significado ya existente siempre que su especificación sea suficientemente diferente, es decir, pueden existir dos subprogramas con el mismo identificador siempre que se distingan por el número o tipo de sus parámetros.
Subprogramas Genéricos
- Ordered list
Permite crear diferentes subprogramas que implementan el mismo algoritmo, el cual actúa sobre diferentes tipos de datos.
- Ordered list
Mejora la reutilización, aumentando productividad en el proceso de desarrollo de software.
- Ordered list
Polimorfismo paramétrico: Parámetros genéricos de tipos usados para especificar los tipos de los parámetros de un subprograma
- Ordered list
Sobrecarga de subprogramas corresponde a un
- Ordered list
polimorfismo ad-hoc
Sobrecarga de Operadores definida por el Usuario
Permite que el usuario sobrecargue operadores existentes en el lenguaje (Lo permiten ADA y C++)
int operator * (const vector &a, const vector &b, int len) { int sum = 0; for (int i = 0; i < len; i++) sum += a[i] + b[i]; return sum; } … vector x, y; … printf(“%i”, x + y);
ing. Santiago Universidad Salazar Palenque