Programación en Ada/Subtipos
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íaDelMesis
Integerrange
1..31;subtype
TDíaFebrerois
TDíaDelMesrange
1..29;subtype
TLaborableis
TDíaDeSemanarange
Lunes..Viernes;
O una restricción en un array irrestringido:
type
TMatrizis
array
(Positive range <>, Positiverange
<>)of
Integer;subtype
TMatriz10x10is
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
Sexois
when
Mujer => Embarazada : Boolean;when
Hombre =>null
;end
case
;end
record
;subtype
TMujeris
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.