Отсутствует ключевое слово virtual в описании объекта.
150 Method identifier expected (ожидается идентификатор метода)
Идентификатор не обозначает метод объекта.
151 Virtual constructors are not allowed (виртуальные конструкторы не допустимы)
Правило конструктора объекта должно быть статическим.
152 Constructor identifier expected (ожидается идентификатор конструктора)
Идентификатор не обозначает конструктор объекта.
153 Destructor identifier expected (ожидается идентификатор деструктора)
Идентификатор не обозначает деструктор объекта.
154 Fail only allowed within constructors (вызов Fail допустим только из конструктора)
Стандартная процедура Fail может быть вызвана только из конструктора объекта.
- 540 -
ПРИЛОЖЕНИЕ 2
Ключи и директивы компилятора
Директивы компилятора Турбо Паскаля управляют режимами компиляции программ в выполнимый код (в памяти или на диске). Они представляют собой комментарии со специальным синтаксисом. Турбо Паскаль допускает директивы компилятора везде, где допускаются комментарии.
Директива компилятора начинается со знака «$», стоящего первым после открывающего граничного знака комментария. Непосредственно после знака «$» следует имя (одна или несколько букв), которое определяет конкретные директивы. Имеются три типа директив:
1. Ключи выбора режимов. Включают конкретные режимы компиляции или выключают их с помощью указания знаков «+» или «-» сразу после имени ключа.
2. Директивы с параметрами. Задают параметры, оказывающие влияние на компиляцию, например имена включаемых файлов и размеры памяти.
3. Директивы (ключи) условной компиляции. Используются для управления порядком компиляции частей исходного текста, основанной на определении пользователем условных символов.
Все директивы за исключением директив переключения должны иметь, по крайней мере, один пробел между именем директивы и параметром.
Директивы компилятора можно разместить непосредственно в исходном коде программы. Можно также изменить применяемые по умолчанию директивы с помощью компилятора, использующего командную строку (ТРС.ЕХЕ) или с помощью компилятора, работающего в диалоговой среде (TURBO.EXE). Все директивы компилятора можно задавать с помощью меню выбора режимов компиляции (Options/Compiler Menu). Все вносимые в меню изменения будут иметь силу при последующих компиляциях. При использовании компилятора ТРС.ЕХЕ директивы компилятора можно либо задавать в командной строке (например, ТРС /$R+ ИмяПрограммы), либо поместить их в файл конфигурации TPC.CFG. Директивы компилятора, которые содержатся в исходном тексте программы, всегда отменяют принятые по умолчанию значения директив.
Эквивалент меню: Option/Compiler/Align Data
Ключ $А позволяет переключаться между выравниванием переменных и
- 541 -
типизированных констант по границе слова и по границе байта. Для процессора 8088 выравнивание на границу слова игнорируется, однако для всех процессоров 80X86 такое выравнивание означает более быстрое выполнение, поскольку адресация ко всем элементам, имеющим размер в слово, или четным адресам происходит за один цикл обращения к памяти вместо двух.
В состоянии {$А+} все переменные и типизированные константы, превышающие по размеру один байт, выравниваются по границе машинного слова (адреса с четными значениями). В случае необходимости между переменными для достижения выравнивания по границе слова включаются дополнительные неиспользуемые байты. Ключ {$А+} не влияет ни на переменные размером в байт, ни на поля структур или элементы массивов. Поле записи будет выравниваться по границе слова только в том случае, если общий размер всех следующих перед ним полей будет иметь четное значение. Аналогично, для любого элемента массива выравнивание по границе слова будет иметь место только, когда размер элементов имеет четное значение.
В состоянии {$А-} никаких действий по выравниванию не предпринимается. Переменные и типизированные константы независимо от их размера помещаются в этом случае просто по следующему доступному адресу.
Независимо от режима $А каждое описание VAR и CONST всегда начинается на границе слова. Подобным образом компилятор всегда старается поддерживать указатель стека (SPtr) выравненным по границе слова, для чего в случае необходимости выделяется дополнительный неиспользуемым байт.
Эквивалент меню: Options/Compiler/Local Symbols
Ключ приводит в действие или отменяет генерацию информации о локальных символах. Информация о локальных символах состоит из имен и типов всех локальных переменных и констант данного модуля, т. е. из символов в секции реализации модуля и символов, содержащихся в процедурах и функциях этого модуля.
Когда для данного модуля задана генерация информации о локальных символах, встроенный отладчик Турбо Паскаля позволяет проверять и модифицировать локальные переменные модуля. Кроме того, с помощью меню Debug/Calls Stack можно проверять обращения к процедурам и функциям модуля.