Programación en Ada/Subtipos

De Wikilibros, la colección de libros de texto de contenido libre.
← Tipos Subtipos Objetos →


Los subtipos se emplean para definir un subconjunto de un tipo determinado definido por una restricción.

Esta restricción puede ser un rango para un tipo escalar:

subtype TDíaDelMes is Integer range 1..31;
subtype TDíaFebrero is TDíaDelMes range 1..29;
subtype TLaborable is TDíaDeSemana range Lunes..Viernes;

O una restricción en un array irrestringido:

type TMatriz is array (Positive range <>, Positive range <>) of Integer;
subtype TMatriz10x10 is TMatriz (1 .. 10, 1 .. 10);  

O una restricción en el valor de un registro discriminado:

type TPersona (Sexo : TSexo) is
  record
    Nombre : TNombre;
    case Sexo is
      when Mujer => Embarazada : Boolean;
      when Hombre => null;
    end case;
  end record;

subtype TMujer is TPersona (Sexo => Mujer);

Los subtipos de un mismo tipo base son totalmente compatibles entre sí, es decir, no es necesaria una conversión de tipos para asignar objetos de subtipos distintos. Sin embargo, si en tiempo de ejecución se asigna un objeto a una variable y no se cumplen las restricciones del subtipo, se levantará la excepción Constraint_Error.

Manual de referencia de Ada[editar]