ВУЗ:
Составители:
Рубрика:
Draw(True) ; 
end; 
Procedure TVisualObject.Hide; 
begin 
Draw(False) ; 
end; 
Методы Draw у родителя и потомка имеют разную реализацию и 
создают  разные  изображения.  В  результате  родительские  методы  − 
Show и Hide − прятать или показывать те или иные изображения будут в 
зависимости от конкретной реализации метода Draw у любого из своих 
потомков.  Динамическое  связывание  в  полной  мере  реализует  поли-
морфизм классов. 
Разница между динамическими и виртуальными методами  состо-
ит  в  том,  что  таблица  динамических  методов DMT содержит  адреса 
только тех методов, которые объявлены как dynamic в данном классе, в 
то  время  как  таблица VMT содержит  адреса  виртуальных  методов  не 
только  данного  класса,  но  и  всех  его  родителей.  Значительно  большая 
по размеру таблица VMT обеспечивает более быстрый поиск, в то время 
как  при  обращении  к  динамическому  методу  программа  сначала  про-
сматривает таблицу DMT у объекта, затем у его родительского класса и 
так далее, пока не будет найдена нужная точка входа. 
В состав  любого  класса входят два  специальных метода – конст-
руктор и деструктор. У класса TObject эти методы называются Create и 
Destroy,  так  же  они  называются  в  подавляющем  большинстве  его  по-
томков. Конструктор распределяет объект в динамической памяти и по-
мещает  адрес  этой  памяти  в  переменную self, которая  автоматически 
объявляется в классе. Деструктор удаляет объект из кучи. Обращение к 
конструктору  должно  предварять  любое  обращение  к  полям  и  некото-
рым методам объекта. По своей форме конструкторы и деструкторы яв-
ляются  процедурами,  но  объявляются  с  помощью  зарезервированных 
слов Constructor и Destructor: 
type 
TMyClass = class  
IntField: Integer;  
Constructor Create(Value: Integer); 
Destructor Destroy;  
end; 
Любые поля объекта, а также методы класса, оперирующие с его 
полями,  могут  вызываться  только  после  создания  объекта  с  помощью 
вызова  конструктора,  т.  к.  конструкторы  распределяют  объект  в  дина-
69
Страницы
- « первая
- ‹ предыдущая
- …
- 67
- 68
- 69
- 70
- 71
- …
- следующая ›
- последняя »
