Tipos privados

Explicación

Una declaración de tipo privado es una en la que, como descripción, se utiliza la palabra private. La declaración proporciona una vista restringida de un tipo que está definido en otro sitio.
En el ámbito de su declaración un tipo privado sólo admite asignación y operadores relacionales de igualdad (a menos que además sea limitado).
Una declaración de tipo privado se puede hacer en la sección pública de la especificación de un paquete; tal tipo debe redeclararse en la sección privada (private) de dicha especificación, donde se definirán sus características "ocultas" que sólo podrán usarse dentro del paquete.
También puede declararse privado un parámetro formal genérico en cuyo caso dentro de la unidad genérica sólo se le podrán aplicar las operaciones antes mencionadas, independientemente del tipo que actúe como parámetro real.

Sintaxis

formal_private_type_definition ::= [[abstract] tagged] [limited] private

formal_derived_type_definition ::=
   [abstract] [limited | synchronized] new subtype_mark [[and interface_list]with private]

Ejemplo

generic
   --  Tipos privados pasados como parámetros genéricos

   type Elemento_1 is private;
   type Elemento_2 is limited private;
   type Elemento_3 is tagged private;
package Ejemplo is
   --  Declaración de un tipo privado ofertado por un paquete

   type Ofertado is private;
   ...