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

       

Приватные дочерние модули (private child units)


Дочерние модули могут быть приватными.

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

В этом случае сервисы для подсистемы могут быть инкапсулированы внутри приватных пакетов, используя наследуемые ими преимущества для компиляции и видимости.

В спецификацию приватных дочерних пакетов разрешается включать приватную часть спецификации их пакетов-родителей, поскольку такие дочерние модули - приватны.

В обычном случае - это не разрешается, так как нарушает сокрытие деталей реализации родительской приватной части.

private package Stacks.Statistics is

procedure Increment_Push_Count;

end Stacks.Statistics;

Процедура Stacks.Statistics.Increment_Push_Count могла бы быть вызвана внутри реализации пакета Stacks. Такая процедура не будет доступна ни одному внешнему, по отношению к этой иерархии модулей, клиенту.

Copyright (C) А.Гавва V-0.4w май 2004



Содержание раздела