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:
}}
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
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/--
{{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==
*
|