![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
LOVE133 |
![]()
Сообщение
#1
|
![]() Гарцующая лошадка ![]() ![]() Группа: Пользователи Сообщений: 107 Пол: Женский Реальное имя: Любовь Репутация: ![]() ![]() ![]() |
Бодрое утро!Завтра намечается экзамен по Объектно-ориентированному программированию.Существует несколько вопросов, неосвещенных ни в нашем чудесном учебном заведении , ни в волшебном FAQ-e... хотелось бы кое -что прояснить, для себя, и для зачетки.
вот список вопросов: 1) чем принципиально отличается конструктор (constructor ) среды паскаль от конструктора в среде делфи.Методы вызова в этих средах( мне на пальцах можно...представление обо всем этом я имею, просто вот конкретно ответить на эти вопросы не могу ) 2) Self-параметры в паскале.Когда необхадим.Принцип действия. 3)Чем отличаются виртуальные методы от динамических? 4)Механизмы позднего и раннего связывания.ВОт тут можно поподробнее... 5)Событийное управление.Методы реализации. Если кто-то обладает данной информацией и способен в доступной форме выразить все это, буду признательна.Может ссылки какие есть пользительные по этому вопросу? а то нам объясняли последний раз что self-параметр это что-то типа шасси в самолете, которое содержит этот самолет...конечно я все понимаю...но ![]() |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
По порядку:
Цитата(LOVE133 @ 10.01.2007 11:43) 1) чем принципиально отличается конструктор (constructor ) среды паскаль от конструктора в среде делфи. Имеется в виду КАКОЙ Паскаль? Не Object? Тогда, наверное, различием можно считать то, что в классическом Паскале конструктор не может быть виртуальным, а в Object Pascal - может...Цитата(LOVE133 @ 10.01.2007 11:43) 2) Self-параметры в паскале. Когда необхадим. Принцип действия. Необходим для разрешения конфликтов (имен, в частности)... Классический пример:TypeПринцип действия... Хм... В каждый метод объекта кроме фактических параметров, передается невидимый параметр Self, указывающий, какому объекту принадлежит метод... Явно обычно Self не обрабатывается, с этим прекрасно справляется компилятор (один из немногочисленных случаев, когда применение Self оправдано я привел выше)... Но совсем забывать про Self тоже нельзя, ибо: Цитата(Глава 9. Объектно-ориентированное программирование) ... параметр Self является частью физического кадра стека при всех вызовах методов. Методы, используемые как внешние на языке Ассемблера, должны учитывать Self при получении доступа к параметрам метода в стеке. Цитата(LOVE133 @ 10.01.2007 11:43) 3)Чем отличаются виртуальные методы от динамических? В принципе - ничем, хотя...Цитата(www.interface.ru) По смыслу динамические и виртуальные методы идентичны. Различие состоит только в механизме их вызова. Методы, объявленные с директивой virtual, вызываются максимально быстро, но платой за это является большой размер системных таблиц, с помощью которых определяются их адреса. Размер этих таблиц начинает сказываться с увеличением числа классов в иерархии. Методы, объявленные с директивой dynamic вызываются несколько дольше, но при этом таблицы с адресами методов имеют более компактный вид, что способствует экономии памяти. Таким образом, программисту предоставляются два способа оптимизации объектов: по скорости работы (virtual) или по объему памяти (dynamic). Пока все, о связывании сейчас найду ссылку, было очень хорошо написано... |
![]() ![]() |
![]() |
Текстовая версия | 4.09.2025 1:37 |