Вот описание:
one=object
X:T;
M1;virtual;
end;
two=object(one)
M2;
end;
three=object(two)
Y:T;
end;
four=object(three)
M3;
M4;virtual;
end;
var
f1,f2:four;
Заранее спасибо!
Про теги не забывай
Сообщение отредактировано: volvo -
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
Внутреннее представление объектов, Объектный Паскаль |
Searcher |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
Здраствуйте, хотелось бы узнать внутреннее представление экземпляров f1,f2 объекта four.
Вот описание: one=object Заранее спасибо! Про теги не забывай Сообщение отредактировано: volvo - |
volvo |
Сообщение
#2
|
Гость |
Что именно вызывает у тебя сложность? Наличие VMT?
|
Searcher |
Сообщение
#3
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
|
volvo |
Сообщение
#4
|
Гость |
Цитата Я так понимаю VMT для этих 2-ух экземпляров одна. VMT вообще всегда одна (для каждого объектного типа), она относится к типу, а не к экземпляру...Будет вот так: Поле X Адрес VMT Поле Y Собственно VMT: Первое слово = Sizeof(T) + Sizeof(T) + 2 Второе слово = -(Sizeof(T) + Sizeof(T) + 2) @M1 @M4 Сообщение отредактировано: volvo - |
Searcher |
Сообщение
#5
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
Так ведь методы M2 и M3 не виртуальные. Разве они в VMT?
|
volvo |
Сообщение
#6
|
Гость |
Сорри, да, я ошибся, поправил...
|
Searcher |
Сообщение
#7
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
А вот так правильно?
Код f1: f2: Поле Х Поле Х Поле Y Поле Y @Four.M3 @Four.M3 @VMT @VMT VMT: ... @one.M1 @four.M4 А @two.M2 не будет в обоих экземплярах? Сообщение отредактировано: Searcher - |
volvo |
Сообщение
#8
|
Гость |
Цитата А @two.M2 не будет в обоих экземплярах? Будет, перед @four.M3 (в порядке определения - ну, или добавления - методов)... Я просто не стал приводить статические методы, привел только поля, и методы виртуальные... |
Searcher |
Сообщение
#9
|
Новичок Группа: Пользователи Сообщений: 24 Пол: Мужской Репутация: 0 |
Будет, перед @four.M3 (в порядке определения - ну, или добавления - методов)... Я просто не стал приводить статические методы, привел только поля, и методы виртуальные... Спасибо. Теперь понял. Позже задам вопрос насчёт внутреннего представления экземпляров классов в делфи с динамическими и виртуальными методами с переопределением в потомках. |
Текстовая версия | 29.05.2024 2:52 |