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).
explicit_dereference ::= name.all implicit_dereference ::= name
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);