|
||||||||
|
Информация о типе времени выполнения (RTTI).Операторы is и as Структура, описывающая формат RTTI Указатель на класс Методы класса.
Давайте разберемся, что из себя представляет объект внутри. Ясно, что каждый экземпляр класса содержит отдельную копию всех его полей. Но как происходит вызов методов? Для этого вернемся к примеру из раздела "Полиморфизм". На рисунке показано, как будет выглядеть внутренняя структура рассмотренных в нем объектов.
Рис. Внутренняя структура объектов Obj1 и Obj2 В новой модели первое поле каждого экземпляра объекта содержит указатель на его класс. Класс как структура состоит из двух частей. Начиная с адреса, на который ссылается указатель на класс, располагается таблица виртуальных методов. Напомним, что она содержит адреса всех виртуальных методов, поэтому у Obj1 и Obj2 она имеет равную длину. Перед таблицей виртуальных методов расположена специальная 32-байтная структура, которая называется Информацией о типе времени выполнения (RunTime Type Information, RTTI). В ней содержатся данные, полностью характеризующие класс: его имя, размер экземпляра, указатели на класс-предок, имя класса и т. д. На рисунке она показана одним блоком. Одно из полей структуры содержит адрес таблицы динамических методов класса. Обратите внимание на то, что у Obj2 она состоит из одного элемента. В Object Pascal Информация о типе времени выполнения играет самостоятельную важную роль и может использоваться программистом явно или неявно.
Для комментария : kadan@grsu.grodno.by | |||||||||||
За содержание страницы отвечает Гончарова М.Н. © Кафедра СПиКБ, 2002-2017 |