Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Отличие виртуальных и динамических методов



Динамические методы отличаются от виртуальных методов способом диспетчеризации на этапе выполнения. Для динамических методов компилятор вместо таблицы виртуальных методов (ТВМ) строит таблицу динамических методов (ТДМ). Применение ТДМ уменьшает размер памяти, используемой прикладной программой при работе с объектами. Однако программа при этом будет работать медленнее. Во всех других отношениях динамические методы считаются эквивалентными виртуальным.

Синтаксически, в отличие от виртуальных методов, для динамических методов в заголовке дополнительно указывается индекс динамического метода, который располагается непосредственно за ключевым словом Virtual. Индекс динамического метода должен быть целочисленной константой в диапазоне от 1 до 656535 и, кроме того, не должен повторяться среди индексов других динамических методов, которые описаны в данном объектном типе и/или его родительских типах.

Пример:

Procedure Move (C1:char,x,y:integer)virtual77

При определении динамического метода в дочернем типе, его заголовок, так же как и для виртуальных методов, должен быть идентичен заголовку в родительском типе, включая индекс.

Особо подчеркнем, что не следует путать два понятия: динамические методы и динамические объекты. Динамические методы могут присутствовать как в динамических, так и в статических объектах.





Дата публикования: 2015-06-12; Прочитано: 233 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...