IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

> Теоретические вопросы по ООП, ответы на конкретные вопросы
LOVE133
сообщение 10.01.2007 12:43
Сообщение #1


Гарцующая лошадка
**

Группа: Пользователи
Сообщений: 107
Пол: Женский
Реальное имя: Любовь

Репутация: -  0  +


Бодрое утро!Завтра намечается экзамен по Объектно-ориентированному программированию.Существует несколько вопросов, неосвещенных ни в нашем чудесном учебном заведении , ни в волшебном FAQ-e... хотелось бы кое -что прояснить, для себя, и для зачетки.
вот список вопросов:
1) чем принципиально отличается конструктор (constructor ) среды паскаль от конструктора в среде делфи.Методы вызова в этих средах( мне на пальцах можно...представление обо всем этом я имею, просто вот конкретно ответить на эти вопросы не могу )
2) Self-параметры в паскале.Когда необхадим.Принцип действия.
3)Чем отличаются виртуальные методы от динамических?
4)Механизмы позднего и раннего связывания.ВОт тут можно поподробнее...
5)Событийное управление.Методы реализации.

Если кто-то обладает данной информацией и способен в доступной форме выразить все это, буду признательна.Может ссылки какие есть пользительные по этому вопросу? а то нам объясняли последний раз что self-параметр это что-то типа шасси в самолете, которое содержит этот самолет...конечно я все понимаю...но blink.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 10.01.2007 13:11
Сообщение #2


Гость






По порядку:

Цитата(LOVE133 @ 10.01.2007 11:43)
1) чем принципиально отличается конструктор (constructor ) среды паскаль от конструктора в среде делфи.
Имеется в виду КАКОЙ Паскаль? Не Object? Тогда, наверное, различием можно считать то, что в классическом Паскале конструктор не может быть виртуальным, а в Object Pascal - может...
Цитата(LOVE133 @ 10.01.2007 11:43)
2) Self-параметры в паскале. Когда необхадим. Принцип действия.
Необходим для разрешения конфликтов (имен, в частности)... Классический пример:
Type
Rec = Record
A, B: Integer;
End;

Obj = Object
A, B: Integer;
Constructor Init(R: Rec);
End;

Constructor Obj.Init(R: Rec);
Begin
With R Do Begin
self.A := A; { <--- Без self компилятор не разберется, о каком первом A речь }
self.B := B;
End;
End;
Принцип действия... Хм... В каждый метод объекта кроме фактических параметров, передается невидимый параметр Self, указывающий, какому объекту принадлежит метод... Явно обычно Self не обрабатывается, с этим прекрасно справляется компилятор (один из немногочисленных случаев, когда применение Self оправдано я привел выше)... Но совсем забывать про Self тоже нельзя, ибо:
Цитата(Глава 9. Объектно-ориентированное программирование)
... параметр Self является частью физического кадра стека при всех вызовах методов. Методы, используемые как внешние на языке Ассемблера, должны учитывать Self при получении доступа к параметрам метода в стеке.

Цитата(LOVE133 @ 10.01.2007 11:43)
3)Чем отличаются виртуальные методы от динамических?
В принципе - ничем, хотя...
Цитата(www.interface.ru)
По смыслу динамические и виртуальные методы идентичны. Различие состоит только в механизме их вызова. Методы, объявленные с директивой virtual, вызываются максимально быстро, но платой за это является большой размер системных таблиц, с помощью которых определяются их адреса. Размер этих таблиц начинает сказываться с увеличением числа классов в иерархии. Методы, объявленные с директивой dynamic вызываются несколько дольше, но при этом таблицы с адресами методов имеют более компактный вид, что способствует экономии памяти. Таким образом, программисту предоставляются два способа оптимизации объектов: по скорости работы (virtual) или по объему памяти (dynamic).


Пока все, о связывании сейчас найду ссылку, было очень хорошо написано...
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 4.09.2025 1:37
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"