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.

Manual de referencia de Ada[editar]