Programación en Ada / Tipos / Punteros a subprogramas

De Wikilibros, la colección de libros de texto de contenido libre.

← Tipos / Punteros / A objetos Punteros a subprogramas Tipos / Derivados →


Un puntero a subprograma nos permite llamar a un subprograma sin conocer su nombre ni dónde está declarado. Este tipo de punteros se suele utilizar en los conocidos callbacks.

type TPCallback is access procedure (Id : Integer; Mensaje : String);
type TFCallback is access function (Mensaje : String) return Natural;

Para obtener el valor del puntero se usa el atributo 'Access aplicado a un subprograma con el prototipo adecuado, es decir, han de coincidir orden y tipo de los parámetros, y en el caso de las funciones, el tipo de retorno.

procedure ProcesarEvento (Id : Integer; Mensaje : String);

MiCallback : TPCallback := ProcesarEvento'Access;

Los punteros a subprograma fueron una de las extensiones de Ada 95.

[editar] Manual de referencia de Ada

Herramientas personales