TURBO PASCAL |
Новости
|
Активизация методовМетод активизируется посредством оператора вызова процедуры или функции, состоящего из десигнатора метода, за которым следует список параметров. Такой тип вызова называется активизацией мето- да. десигнатор метода │ ┌────────────────────┐ └─┬──────────────────────────────────────>│идентификатор метода├> │ ^ └────────────────────┘ │ ┌──────────────────────┐ ┌───┐ │ └>│ ссылка на переменную ├>│ . ├────┘ └──────────────────────┘ └───┘ Ссылка на переменную задается, если десигнатор метода должен описывать экземпляр объектного типа, а идентификатор метода дол- жен обозначать метод этого объектного типа. Экземпляр, обозначенный десигнатором метода, становится не- явным фактическим параметром метода; он соответствует формальному параметру-переменной с именем Self, который владеет объектным ти- пом, соответствующим активизированному методу. Для статических методов описанный тип (на этапе компиляции) определяет, какой из методов активизируется. Например, десигнато- ры F.Init и FP^.Init всегда активизируют TField.Init, так как описанным типом F и FP^ является TField. Для виртуальных методов выбором экземпляра управляет факти- ческий тип (этапа выполнения). Например, десигнатор FP^.Display может активизировать методы TField.Display, TStrField.Display, TNumField.Display или TZipField.Display (в зависимости от факти- ческого типа экземпляра, указываемого FP). В операторе with, ссылающемся на экземпляр объектного типа, ссылка на переменную в десигнаторе метода может опускаться. В этом случае экземпляром, на который ссылается оператор with, ста- новится неявный параметр Self активизации метода. Аналогично, ссылка не переменную может опускаться в методе. В этом случае параметром Self метода, содержащего вызов, становится неявный па- раметр Self активизации метода. |
(с)Все права защищены По всем интересующим вопросам прошу писать на электронный адрес |