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

  1. Ordered list

Permite crear diferentes subprogramas que implementan el mismo algoritmo, el cual actúa sobre diferentes tipos de datos.

  1. Ordered list

Mejora la reutilización, aumentando productividad en el proceso de desarrollo de software.

  1. Ordered list

Polimorfismo paramétrico: Parámetros genéricos de tipos usados para especificar los tipos de los parámetros de un subprograma

  1. Ordered list

Sobrecarga de subprogramas corresponde a un

  1. 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


Google