русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Таблиця динамічних методів


Дата додавання: 2014-04-22; переглядів: 979.


Таблиця віртуальних методів об’єктного типу містить для кожного описаного в об’єктному типі віртуального методу і його предків 4-байтовий запис. Коли в породжуючих типах (предках) визначається велике число віртуальних методів, в процесі створення дочірніх типів може використовуватися досить великий об’єм пам’яті, особливо якщо цих дочірніх типів є багато. Хоча в дочірніх типах можуть перевизначатися тільки деякі із успадкованих методів, таблиця віртуальних методів кожного дочірнього типу містить вказівник методу для всіх успадкованих віртуальних методів, навіть якщо вони не перевизначалися.

Динамічні методи забезпечують в таких випадках альтернативу. Для таких методів в Pascal-і вводиться новий формат таблиці методів і новий спосіб обробки викликів методів з пізнім зв’язуванням. Замість кодування всіх методів об’єктного типу з пізнім зв’язуванням в таблиці динамічних методів (DMT) кодуються лише ті методи, які були в об’єктному типі перевизначені. Якщо в похідних типах перевизначаються лише деякі з великого числа методів з пізнім зв’язуванням, формат таблиці динамічних методів використовує менший простір, ніж формат таблиці віртуальних методів.

Об’єктний тип має таблицю динамічних методів тільки тоді, коли в ньому вводяться чи перевизначаються, інакше він просто успадковує таблицю динамічних методів свого предка.

Як і у випадку таблиці віртуальних методів, таблиця динамічних методів записується в ініціалізовану частину сегменту даних прикладної програми.

Перше слово таблиці динамічних методів містить зміщення в сегменті даних батьківської таблиці динамічних методів чи 0, якщо батьківська таблиця динамічних методів відсутня.

Друге і третє слова DMT використовуються в кеш-буфері перегляду динамічних методів.

Четверте слово таблиці динамічних методів містить лічильник числа записів таблиці динамічних методів. Безпосередньо після нього йде список слів, кожне з яких містить індекс динамічного методу, а потім список відповідних вказівників методів. Довжина кожного списку задається лічильником числа записів DMT.

 


<== попередня лекція | наступна лекція ==>
Функції роботи з таблицею віртуальних методів | Виклик статичних методів


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн