Programación en Ada/Tipos/Punteros a subprogramas
< Programación en Ada | Tipos
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.