Diferencia entre revisiones de «Programación en Ada/Tipos limitados»

Contenido eliminado Contenido añadido
División de Programación en Ada
 
Plantillas y títulos
Línea 5:
}}
 
==== Tipos privados limitados ====
 
Cuando se define un {{Ada:|Tipos / Privados|tipo privado|}}, se predefinen inherentemente las
operaciones de asignación, igualdad y desigualdad. Si no se quiere que
exista ninguna operación, sino únicamente las definidas en leel paquete,
se debe emplear el tipo privado limitado.
 
Línea 21:
dicho tipo.
 
Para indicarlo, se define el tipo como <tt>{{Ada/Reservada|limited}} {{Ada/Reservada|private}}</tt>. Por ejemplo,
implementado un tipo abstracto de datos pila:
 
{{Ada/Reservada|package}} Pilas {{Ada/Reservada|is}}
{{Ada/Reservada|type}} TPila {{Ada/Reservada|is}} {{Ada/Reservada|limited}} {{Ada/Reservada|private}}; {{Ada/-- |Tipo privado limitado.}}
{{Ada/Reservada|procedure}} Poner (P: in {{Ada/Reservada|out}} TPila; X: {{Ada/Reservada|in}} Integer);
{{Ada/Reservada|procedure}} Quitar (P: {{Ada/Reservada|in}} out TPila; X: {{Ada/Reservada|out}} Integer);
{{Ada/Reservada|function}} "=" (P1, P2: TPila) {{Ada/Reservada|return}} Boolean;
{{Ada/Reservada|private}}
Max: {{Ada/Reservada|constant}} := 100;
{{Ada/Reservada|type}} TVectorEnteros {{Ada/Reservada|is}} {{Ada/Reservada|array}} (Integer {{Ada/Reservada|range}} <>) {{Ada/Reservada|of}} Integer;
{{Ada/Reservada|type}} TPila {{Ada/Reservada|is}}
{{Ada/Reservada|record}}
P: TVectorEnteros(1..Max);
Cima; Integer {{Ada/Reservada|range}} 0..Max := 0;
{{Ada/Reservada|end}} {{Ada/Reservada|record}};
{{Ada/Reservada|end}} Pilas;
 
La función "=" se implementa para comprobar que dos pilas tienen el
Línea 43:
ser iguales. Por eso, se ha optado por un tipo privado limitado. Si el
tipo fuera únicamente privado, no se podría redefinir la operación "="
para darle la implementación correcta. <!-- Comprobar si esto es cierto en Ada 95-->
 
==Manual de referencia de Ada==
*[http:{{Ada//www.adaic.org/standards/95lrm/html/RM-RM2|7-|5.html 7.5 |Limited Types]}}