16.6.4 Область действия модуля |
Вверх Предыдущий Следующий |
Все идентификаторы в интерфейсной части модуля действительны с точки объявления и до конца модуля. Кроме того, идентификаторы определены в программах или модулях, которые используют модули в пункте uses. Идентификаторы косвенно зависимых модулей не доступны. Идентификаторы, объявленные в части реализации модуля действительны с точки объявления и до конца модуля. Модуль system автоматически используется во всех модулях и программах. Поэтому его идентификаторы всегда известны, в каждой Pascal программе, библиотеке или модуле. Правила области действия модуля подразумевают, что идентификатор модуля может быть переопределен. Для того, чтобы иметь доступ к идентификатору другого модуля, который был переопределён в текущем модуле, перед идентификатором нужно указать имя модул (через точку), как показано в следующем примере: unit unitA;
interface
Type MyType=Real;
implementation end.
Program prog; Uses UnitA; { Переопределим MyType} Type MyType=Integer; Var A:Mytype; {Будет целым} B:UnitA.MyType {Будет вещественным} begin end. Это полезно, когда переобъявляются идентификаторы модуля system (а надо использовать первоначальные). |