Ада-95. Компилятор GNAT


Абстрактные типы и подпрограммы - часть 2


Например:

with Sets;

package Quick_Sets is

type Bit_Vector is array(0..255) of Boolean; pragma Pack (Bit_Vector);

type Quick_Set is new Sets.Set with

record

Bits : Bit_Vector := (others => False); end record;

-- объявление конкретной реализации function Empty return Quick_Set; function Empty(Element : Quick_Set) return Boolean;

. . .

Показанный выше схематический пример описывает тип Quick_Set, производный от абстрактного типа Set.

В этом примере, тип Quick_Set осуществляет реализацию функциональности которая была задана в абстрактном типе Set.

В результате, после описания типа Quick_Set, мы можем описывать и использовать объекты типа Quick_Set

логическая функциональность которых будет соответствовать функциональности абстрактного типа Set.

Необходимо также заметить, что Ада позволяет чтобы вновь описываемый тип, производный от абстрактного типа, также был абстрактным.

Используя такие возможности можно разработать иерархию абстрактных типов, которая будет определять логическую функциональность программной подсистемы или всего программного проекта.




- Начало -  - Назад -  - Вперед -