Вход


Главная страница >> Учебный процесс >> Конспекты >> Delphi. Библиотека визуальных компонентов VCL >> Структура справочника и соглашения >> Информация о типе времени выполнения (RTTI).
Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


[Назад]    [Содержание ]    [Вперед]

  


Информация о типе времени выполнения (RTTI).


Операторы is и as
Структура, описывающая формат RTTI
Указатель на класс
Методы класса.

Давайте разберемся, что из себя представляет объект внутри. Ясно, что каждый экземпляр класса содержит отдельную копию всех его полей. Но как происходит вызов методов? Для этого вернемся к примеру из раздела "Полиморфизм". На рисунке показано, как будет выглядеть внутренняя структура рассмотренных в нем объектов.

Рис. Внутренняя структура объектов Obj1 и Obj2

В новой модели первое поле каждого экземпляра объекта содержит указатель на его класс. Класс как структура состоит из двух частей. Начиная с адреса, на который ссылается указатель на класс, располагается таблица виртуальных методов. Напомним, что она содержит адреса всех виртуальных методов, поэтому у Obj1 и Obj2 она имеет равную длину. Перед таблицей виртуальных методов расположена специальная 32-байтная структура, которая называется Информацией о типе времени выполнения (RunTime Type Information, RTTI). В ней содержатся данные, полностью характеризующие класс: его имя, размер экземпляра, указатели на класс-предок, имя класса и т. д. На рисунке она показана одним блоком. Одно из полей структуры содержит адрес таблицы динамических методов класса. Обратите внимание на то, что у Obj2 она состоит из одного элемента.

В Object Pascal Информация о типе времени выполнения играет самостоятельную важную роль и может использоваться программистом явно или неявно.



[Назад]    [Содержание ]    [Вперед]

  


Для комментария : kadan@grsu.grodno.by

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017