Programación en Ada/Tipos/Punteros a subprogramas
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
TPCallbackis
access
procedure
(Id : Integer; Mensaje : String);
type
TFCallbackis
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.