Области видимости переменных и функций

Теперь остановимся на вопросе об областях видимости элементов програм­мы — констант, переменных, функций и процедур, то есть о связи места их объявления в программе и места их использования. Частично мы уже затра­гивали этот вопрос в предыдущем разделе, не упоминая о самом понятии об­ласти видимости.

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

● Элементы, объявленные в разделе i nterface модуля вне описания типа, видимы и доступны внутри данного модуля и из внешних модулей.

● Элементы, объявленные в разделе implementation модуля, видимы и доступ­ны внутри данного модуля, но недоступны из внешних модулей.

● Элементы, объявленные в классе в разделе private, видимы и доступны только внутри данного модуля. При этом из процедур, объявленных внут­ри класса, к ним можно обращаться непосредственно по имени, а из дру­гих процедур — только со ссылкой на объект данного класса. Если в модуле описано не­сколько классов, то объекты этих классов взаимно видят элементы, опи­санные в их разделах private.

● Элементы, объявленные в классе в разделе public, видимы и доступны для объектов любых классов и для других модулей. При этом из объектов того же класса к ним можно обращаться непосредственно по имени, а из дру­гих объектов и процедур — только со ссылкой на объект данного класса.

● В классах, помимо обсуждавшихся ранее, могут быть еще разделы protected (защищенные). Элементы, объявленные в классе в разделе protected, ви­димы и доступны для любых объектов внутри данного модуля, а также для объектов классов — наследников данного класса в других модулях. Объекты из других модулей, классы которых не являются наследниками данного класса, не видят защищенных элементов.

● Элементы, объявленные внутри другой процедуры являются локальными, то есть они видимы и доступны только внутри данной процедуры или внутри процедур, вложенных в дан­ную. При этом время жизни переменных, объявленных внутри процедуры, определяется временем выполнения этой процедуры.

Компоненты


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: