Declaración y definición de tipo access

Explicación

El acceso a los objetos referenciados por los punteros se hace mediante una derefenciación que puede ser explícita (usando .all), o implícita (cuando se quiere accerder a un componente individual de un objeto compuesto).

Sintaxis

explicit_dereference ::= name.all

implicit_dereference ::= name

Ejemplo

type Persona is record
   Nombre    : String (1 .. 20);
   Apellidos : String (1 .. 50);
end record;
type Vector is array (1 .. 50) of Integer;
--  Tipos puntero
type Puntero_1 is access Integer;
type Access_Persona is access Persona;
type Access_Vector is access Vector;
   
--  Variables puntero
A, B : Puntero_1;
R    : Access_Persona;
V    : Access_Vector;
--  Derreferenciación explícita
Ada.Integer_Text_IO.Put (P.all);
Ada.Integer_Text_IO.Put (V.all (I)); --  Supuesto I entre 1 y 10
Ada.Text_IO.Put (R.all.Nombre);
--  Derreferenciación implícita
Ada.Integer_Text_IO.Put (V (I));     --  Supuesto I entre 1 y 10
Ada.Text_IO.Put (R.Nombre);

Véase