Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 семестр.doc
Скачиваний:
5
Добавлен:
02.08.2019
Размер:
137.73 Кб
Скачать
  1. Информация о типе во время выполнения.

Информация о типах времени исполнения.(Runtime Type Information, RTTI) —это данные, генерируемые компилятором Delphi о большинстве объектов вашей программы. RTTI представляет собой возможность языка, обеспечивающее приложение информацией об объектах (его имя, размер экземпляра, указатели на класс-предок, имя класса и т. д.) и о простых типах во время работы программы. Сама среда разработки использует RTTI для доступа к значениям свойств компонент, сохраняемых и считываемых из dfm-файлов и для отображения их в Object Inspector,

Компилятор Delphi генерирует runtime информацию для простых типов, используемых в программе, автоматически. Для объектов, RTTI информация генерируется компилятором для свойств и методов, описанных в секции published в следующих случаях:

Объект унаследован от объекта, дня которого генерируется такая информация. В качестве примера можно назвать объект TPersistent.

Декларация класса обрамлена директивами компилятора {$M+} и {$M-}.

Необходимо отметить, что published свойства ограничены по типу данных. Они могут быть перечисляемым типом, строковым типом, классом, интерфейсом или событием (указатель на метод класса). Также могут использоваться множества (set), если верхний и нижний пределы их базового типа имеют порядковые значения между 0 и 31 (иначе говоря, множество должно помещаться в байте, слове или двойном слове). Также можно иметь published свойство любого из вещественных типов (за исключением Real48). Свойство-массив не может быть published. Все методы могут быть published, но класс не может иметь два или более перегруженных метода с одинаковыми именами. Члены класса могут быть published, только если они являются классом или интерфейсом.

  1. Полиморфизм и виртуальные методы.

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

Конкретные механизмы реализации полиморфизма:

1. Чистый полиморфизм – один код функции по разному интерпретируется в зависимости от типов аргумент:

2. Перезагрузка – определение нескольких функций с одним именем (С++);

3. Переопределение (простой полиморфизм) – конкретный метод определяется телом объекта при компиляции программы (ранее связывание).

4. Полиморфные объекты (сложный полиморфизм) – конкретный метод определяется топим объекта в процессе выполнения программы (позже связывание).

5. Обобщение функции (шаблоны) – используются при реализации в языке параметризованных классов (С++).

Виртуальные методы

Методы для которых должно реализовываться позднее связывание называются виртуальные и описываются словом virtual.

Реализация механизма позднего связывания осуществляется с использованием специальной таблицы, таблицы виртуальных методов (ТВМ).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]