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



         

Расширение существующего пакета - часть 2


Клиенту, которому необходимо использовать функцию Peek, просто необходимо включить дочерний пакет в инструкцию спецификатора совместности контекста with:

with Stacks.More_Stuff;

procedure Demo is

X : Stacks.Stack;

begin

Stacks.Push(X, 5); if Stacks.More_Stuff.Peek = 5 then

. . .

end Demo;

Следует заметить, что включение дочернего пакета в инструкцию спецификатора совместности контекста with автоматически подразумевает включение в инструкцию with

всех пакетов-родителей.

Однако, инструкция спецификатора использования контекста use

таким образом не работает.

То есть, область видимости может быть получена пакетом только в базисе пакета.

with Stacks.More_Stuff; use Stacks; use More_Stuff;

procedure Demo is

X : Stack;

begin

Push(X, 5); if Peek(x) = 5 then

. . .

end Demo;

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

При этом, однако, сами подпрограммы не могут иметь дочерние модули.




Содержание  Назад  Вперед