Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BorlandPascal.doc
Скачиваний:
54
Добавлен:
17.03.2015
Размер:
2.83 Mб
Скачать

Параметры-константы

Формальные параметры-константы работают аналогично локальной

переменной, доступной только по чтению, которая получает свое

значение при активизации процедуры или функции от соответствующе-

го фактического параметра. Присваивания формальному парамет-

ру-константе не допускаются. Формальный параметр-константа также

не может передаваться в качестве фактического параметра другой

процедуре или функции.

Параметр-константа, соответствующий фактическому параметру в

операторе процедуры или функции, должен подчиняться тем же прави-

лам, что и фактическое значение параметра.

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

полнении процедуры или функции своего значения, вместо парамет-

ра-значения следует использовать параметр-константу. Парамет-

ры-константы позволяют при реализации процедуры или функции защи-

титься от случайных присваиваний формальному параметру. Кроме то-

го, для параметров структурного и строкового типа компилятор при

использовании вместо параметров-значений параметров-констант мо-

жет генерировать более эффективный код.

Параметры-переменные

Параметр-переменная используется, когда значение должно пе-

редаваться из процедуры или функции вызывающей программе. Соот-

ветствующий фактический параметр в операторе вызова процедуры или

функции должен быть ссылкой на переменную. При активизации проце-

дуры или функции формальный параметр-переменная замещается факти-

ческой переменной, любые изменения в значении формального пара-

метра-переменной отражаются на фактическом параметре.

Внутри процедуры или функции любая ссылка на формальный па-

раметр-переменную приводит к доступу к самому фактическому пара-

метру. Тип фактического параметра должен совпадать с типом фор-

мального параметра-переменной (вы можете обойти это ограничение с

помощью нетипизированного параметра-переменной).

Примечание: Файловый тип может передаваться только,

как параметр-переменная.

Директива компилятора $P управляет смыслом параметра-пере-

менной, описываемого с ключевым словом string. В состоянии по

умолчанию ({$P-}) string соответствует строковому типу с атрибу-

том размера 255. В состоянии {$P+} string указывает, что параметр

является открытым строковым параметром (см. ниже).

При ссылке на фактический параметр-переменную, связанную с

индексированием массива или получением указателя на объект, эти

действия выполняются перед активизацией процедуры или функции.

Правила совместимости по присваиванию для объектного типа

применяются также к параметрам-переменным объектного типа. Для

формального параметра типа T1 фактический параметр должен быть

типа T2, если T2 находится в домене T1. Например, с учетом опи-

саний Главы 4, методу TField.Copy может передаваться экземпляр

TField, TStrField, TNumField, TZipField или любой другой экземп-

ляр потомка TField.

Соседние файлы в предмете Программирование на Pascal