ВУЗ:
Составители:
Рубрика:
19
Попытка сослаться на какое-либо поле объекта приведет к синтаксической ошибке при
трансляции.
Другими словами, с реализацией классового метода надо обращаться так, как будто
пишется самостоятельная подпрограмма.
Общий синтаксис реализации классовой процедуры:
class procedure ИмяКласса.ИмяПроцедуры (<Параметры>);
<Необязательный блок объявлений>
begin
<Выполняемые операторы>
end;
Приведем пример:
class procedure TParser.SetDelimeter (const ASymbol: String);
begin
ParserDelimeter:=ASymbol;
end;
Реализация классовой процедуры должна располагаться в разделе implementation модуля,
либо в программе или библиотеке, до основного блока begin-end. Кроме использования
зарезервированного слова class, в остальном реализация выглядит так же, как и реализация
обычного метода.
Обычный синтаксис реализации классовой функции:
class function ИмяКласса.ИмяФункции(<Параметры>): ТипРезультата;
<Необязательный блок объявлений>
begin
<Выполняемые операторы>
Result := . . .
<Выполняемые операторы>
end;
Пример:
class function TForm1.NumInstances:Integer;
begin
Result:=GlobalInstanceCount;
{GlobalInstanceCount - это глобальная переменная модуля}
end;
Внутри реализации доступ к полям представителя класса отсутствует, но можно
использовать любые данные, которые были бы доступны в этом же контексте самостоятельной
функции.
Как всегда, в функции должен быть хотя бы один оператор, присваивающий ей либо
предопределенной переменной Result возвращаемое значение.
2 Вызов методов
Страницы
- « первая
- ‹ предыдущая
- …
- 17
- 18
- 19
- 20
- 21
- …
- следующая ›
- последняя »