Содержание
- 2. Внутренний формат данных объекта. Внутренний формат данных объекта имеет сходство с внутренним форматом записи. Поля объекта
- 3. Внутренний формат данных объекта. Если объектный тип определяет виртуальные методы, конструкторы или деструкторы, то компилятор размещает
- 4. Внутренний формат данных объекта. Инициализация поля таблицы виртуальных методов экземпляра объекта осуществляется конструктором объектного типа. Программа
- 5. Представление в сегменте данных объектов типов TPerson, TStaff и Tteacher. TPerson Name Date Rate TBM TStaff
- 6. Таблица виртуальных методов. Каждый объектный тип, содержащий или наследующий виртуальные методы, конструкторы или деструкторы, имеет таблицу
- 7. Таблица виртуальных методов. Первое слово таблицы виртуальных методов содержит размер экземпляров соответствующего объектного типа. Эта информация
- 8. Таблица виртуальных методов. Второе слово таблицы виртуальных методов содержит отрицательный размер экземпляров соответствующего объектного типа. Эта
- 9. Таблица виртуальных методов. Разрешение проверок границ диапазонов и проверок вызовов виртуальных методов замедляет выполнение программы и
- 10. Таблица виртуальных методов. Третье слово ТВМ содержит смещение сегмента данных объектного типа в таблице динамических методов
- 11. Таблица виртуальных методов. Четвертое слово ТВМ резервируется и всегда равно 0.
- 12. Таблица виртуальных методов. Начиная со смещения 8, следует список 32-разрядных указателей методов. Один указатель на каждый
- 13. Пример размещения таблиц виртуальных методов типов TStaff и TTeacher TBM TStaff 16 -16 0 0 TStaff.Done
- 14. Таблица виртуальных методов. Конструкторы объектных типов содержат специальный код, который запоминает смещение таблицы виртуальных методов объектного
- 15. Функции для работы с таблицей виртуальных методов. Для непосредственной работы с ТВМ используются две функции FUNCTION
- 16. Функции для работы с таблицей виртуальных методов. Примененная к экземпляру объектного типа, имеющего таблицу виртуальных методов,
- 17. Функции для работы с таблицей виртуальных методов. Функция TypeOf может использоваться для проверки фактического типа экземпляра.
- 18. Таблица динамических методов. Таблица виртуальных методов объектного типа содержит для каждого описанного в объектном типе виртуального
- 19. Таблица динамических методов. Динамические методы обеспечивают в таких ситуациях альтернативу. Для динамических методов вводится новый формат
- 20. Таблица динамических методов. Переопределим типы TStaff и Ттеасher следующим образом: TStaff = OBJECT(TPerson); Bonus : REAL;
- 21. Схемы таблиц виртуальных и динамических методов для TStaff TBM TStaff 4 -4 Смещение ТДМ TStaff 0
- 22. Схемы таблиц виртуальных и динамических методов для ТТеаcher TBM TTeacher 4 -4 Смещение ТДМ TTeacher 0
- 23. Таблица динамических методов. Первое слово Содержит смещение в сегменте данных родительской таблицы динамических методов или 0,
- 24. Таблица динамических методов. Объектный тип имеет таблицу динамических методов только, если в нем вводятся или переопределяются
- 25. Вызов статических методов. Статические методы используют те же соглашения о вызовах, что и обычные процедуры и
- 26. Вызов статических методов. Например: в типе Tperson определим процедуру ShowName введем переменную Person типа ^TPerson, Теперь
- 27. Вызов статических методов. При возврате метод должен удалить параметр Self из стека точно так же, как
- 28. Вызов виртуальных методов. Для вызова виртуального метода компилятор генерирует код, который: выбирает адрес таблицы виртуальных методов
- 29. Вызов виртуальных методов. Правила совместимости для объектных типов позволяют Staff указывать на TStaff и на ТТеасher
- 30. Вызов динамических методов. Обработка вызова динамического метода более сложная и требует больше времени, чем вызов виртуального
- 31. Вызов динамических методов. Если бы метод GetSum типа TStaff описывался как динамический метод с индексом 10,
- 32. Вызов динамических методов.
- 33. Вызов динамических методов.
- 34. Вызов динамических методов. Несмотря на использование кэширования и хорошо оптимизированной подпрограммы обработки вызовов, обработка вызова динамического
- 35. Вызов конструкторов и деструкторов. Конструкторы и деструкторы используют те же соглашения о вызовах, что и обычные
- 36. Вызов конструкторов и деструкторов. Если конструктор вызывается для размещения динамического объекта с помощью расширенного синтаксиса стандартной
- 37. Вызов конструкторов и деструкторов. Если конструктор вызывается с использованием собственного идентификатора метода (т.е. идентификатора типа объекта,
- 39. Скачать презентацию