Пакеты ввода-вывода языка Ада
Пакет подключается к программе с помощью указания (спецификатора) контекста, имеющего вид: with < Имя_Пакета >;
В частности, в пакетах размещены процедуры ввода-вывода для величин предопределенных типов (табл. 18.3).
Таблица 18.3. Пакеты ввода-вывода |
Для поддержки ввода-вывода величин других типов, определяемых пользователем, используются шаблоны (заготовки) пакетов — родовые пакеты. Родовой пакет перед использованием должен быть настроен на конкретный тип. |
540 |
Глава 18. Ввод-вывод и файлы |
Родовые пакеты ввода-вывода всегда находятся внутри пакета Ada.Text_IO (табл. 18.4). |
Таблица 18.4. Родовые пакеты ввода-вывода |
Для обращения к внутренним родовым пакетам используют составные имена. Например, Ada.Text_IO.Modular_IO, Ada.Text_IO.Enumeration_IO. Процесс настройки родового пакета называют конкретизацией. В результате конкретизации образуется экземпляр родового пакета. Экземпляр помещается в библиотеку и может быть подключен к любой программе. Конкретизация задается предложением следующего формата: with ; package is new ( ); Например, введем перечисляемый тип Type Summer is ( may, jun, jul, aug ); Создадим экземпляр пакета для ввода-вывода величин этого типа: with Ada.Text_IO.Enumeration_IO; package Summer_IO is new Ada.Text_IO.Enumeration_IO ( Summer ); Теперь пакет Summer_IO может использоваться в любой программе. |