![]() |
1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
![]() |
Bokul |
![]()
Сообщение
#1
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Объект TObject занимает в памяти 8 байт - сума двух longint, т.е. места для методов не резервируется. Мне интересно, как и где в памяти размещаются методы объектов и куда я обращаюсь, вызывая метод по ссылке - po^.method?
-------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
![]() ![]() |
Bokul |
![]() ![]()
Сообщение
#2
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 117 Пол: Мужской Реальное имя: Богдан Репутация: ![]() ![]() ![]() |
Кажется я начинаю понимать...
Нигде не встречал информации о том, где хранится виртуальный метод, где? В куче? Тот же вопрос для VMT? Если бы method в моем коде был виртуальным, что Паскаль бы поставил на место po^.method; при компиляции? Таблица виртуальных методов всегда находится по одному адресу? Т.е. на этапе компиляции мы знаем ее адрес? Где можно почитать о структуре сегмента кода, данных? Цитата Что еще ему надо? Код? -------------------- Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее. |
![]() ![]() |
![]() |
Текстовая версия | 22.07.2025 1:21 |