Ниже приведен "стандартный формат", используемый нами для объявления типов, и который можно изменять по мере необходимости (прописным курсивом выделено то, что задается пользователем).
with ИМЯ_РОДИТЕЛЬСКОГО_ПАКЕТА; use ИМЯ_РОДИТЕЛЬСКОГО_ПАКЕТА; package ИМЯ_ПАКЕТА is type МОЙ_ТИП is tagged private; -- или, new РОДИТЕЛЬСКИЙ_ТИП with private type МОЙ_ТИП_Access is access all МОЙ_ТИП'Class; -- Мы обсудим эту строку в следующем уроке; в дальнейшем она -- может облегчить выполнение многих операций -- Ниже следуют диспетчеризируемые операции. private -- Здесь необходимо в деталях описать реализацию типа МОЙ_ТИП . end ИМЯ_ПАКЕТА;
Обычно в качестве имени пакета мы используем множественное число от имени типа. Например:
with Creatures; use Creatures; package Players is type Player is new Creature with private; -- Player принадлежит к типу Creature type Player_Access is access all Player'Class; -- Ниже следуют диспетчеризируемые операции. procedure Look(P : in Player); private type Player is new Creature with record Logged_In : Boolean; end record; end Players;
В Ada разрешается объявлять несколько объектно-ориентированных типов в одном пакете, но это не значит, что так и нужно делать. Общим правилом является объявление различных типов в разных пакетах, кроме случая, когда два типа тесно взаимосвязаны.
Укажите имя нового тэгового типа, который описан в приведенном выше примере.
Перейти к предыдущему разделу | Перейти к следующему разделу | Вернуться к содержанию Урока 7 |
---|
David A. Wheeler (dwheeler@ida.org)
Исходная копия этого документа находится по адресу
"http://www.adahome.com/Tutorials/Lovelace/s7s5.htm".
Исходная копия перевода размещена на сайте http://www.ada-ru.org
Перевод: Юрий Королев
Общая редакция перевода: Г.Ю. Сисюк