Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2011.06.12;
Скачать: [xml.tar.bz2];

Вниз

Экземпляр объекта.   Найти похожие ветки 

 
Anatoly Podgoretsky ©   (2011-02-25 11:09) [40]

> KilkennyCat  (24.02.2011 23:08:12)  [12]

И тут к нему еще и АП присоединился :-)


 
Anatoly Podgoretsky ©   (2011-02-25 11:11) [41]

> Leon-Z  (24.02.2011 23:39:20)  [20]

Нифига ты об ассемблере ничего не знаешь, ужас


 
Anatoly Podgoretsky ©   (2011-02-25 11:14) [42]

> Abramov Petr V.  (25.02.2011 00:19:26)  [26]

Не естественно ассемлер изучать по Дельфи, лучше напрямую с помощью
учебников, которые никогда секретом не были.


 
MsGuns ©   (2011-02-25 11:58) [43]

Блин, диссертация на тему "Технология добывания творога из вареников"


 
Dimka Maslov ©   (2011-02-25 12:21) [44]


> И как заполняется таблица VMT ? Если у потомка и у предка
> описан одинаковый виртуальный метод, то адрес какого метода
> записывается в VMT ? Или оба метода добавляются в таблицу
> ?


Таблица виртуальных методов у всех объектов одного класса одна. В неё записываются все виртуальные методы самого класса. Если метод не переопределён в указанное место записывается адрес метода предка. При вызове виртуальной функции генереруется код, который берёт адрес метода из таблицы и передаёт в него управление
примерно так:
call [eax+offset], где offset - смещение адреса виртуального метода, известное только компилятору.

Существуют ещё динамические методы, для которых смещение от начала таблицы динамических методов на этапе компиляции неизвестно. При вызове динамического метода генерируется код поиска адреса, потом на него передаётся управление. Динамические методы введены в основном для поддержки механизма обработки сообщений windows, а также для экономии памяти за счёт некоторого ухудшения производительности.

Подобные вещи подробно описаны в старых книгах по программированию (издания примерно 90-х годов прошлого века).


 
Anatoly Podgoretsky ©   (2011-02-25 13:02) [45]

> Dimka Maslov  (25.02.2011 12:21:44)  [44]

В том то и дело, что многие вещи описаны только в старых книга.


 
Abramov Petr V.   (2011-02-25 13:17) [46]


> Anatoly Podgoretsky ©   (25.02.11 11:14) [42]
>
> > Abramov Petr V.  (25.02.2011 00:19:26)  [26]
>
> Не естественно ассемлер изучать по Дельфи, лучше напрямую
> с помощью
> учебников, которые никогда секретом не были.

изучать конечно, не лучший способ, подразумевается, что инструмент на базовом уровне осилен, а почитать творчество умных людей (компилятора) всегда полезно.


 
картман ©   (2011-02-25 13:48) [47]


> Dimka Maslov ©   (25.02.11 12:21) [44]

думаю, автору не нужно описание(хотя, это тоже) "сверху у нас лежат яблоки, на полке ниже помидоры...", в первую очередь ему картинка треба - умозрительная вещь, она умозрительна... мда...


 
Григорьев Антон ©   (2011-02-25 13:54) [48]

http://www.delphikingdom.com/asp/viewitem.asp?catalogid=216 - маловато и с некоторыми неточностями, но полезная информация имеется.


 
Dimka Maslov ©   (2011-02-25 14:06) [49]


> В том то и дело, что многие вещи описаны только в старых
> книга.


Если автор пишет реферат, то тем более ему надо ознакомится с литературой. А то, что современной литературы на эту тему нет - это не оправдание. Библиотеки никто ещё массово не позакрывались.


> в первую очередь ему картинка треба

В тех старых книгах и картинки есть


 
картман ©   (2011-02-25 15:57) [50]


> В тех старых книгах и картинки есть

иии? Как называются? Мне правда не для реферата...


 
Dimka Maslov ©   (2011-02-25 16:09) [51]

В книге "Объектно-ориетированное программирование в действии" (название точно не помню) были картинки, поясняющие работы таблиц виртуальных методов.


 
Leon-Z ©   (2011-02-25 16:20) [52]


>Игорь Шевченко ©   (25.02.11 10:16) [37]
>а ссылки на ник "прошиваются в код", то с виртуальными как?
>[27] не осилил ?

Этот псевдокод мне известен. Вы ничего нового мне не поведали.


> Anatoly Podgoretsky ©   (25.02.11 11:11) [41]
> > Leon-Z  (24.02.2011 23:39:20)  [20] Нифига ты об ассемблере
> ничего не знаешь, ужас

И что-же мне надо узнать об ассемблере?

>Dimka Maslov ©   (25.02.11 12:21) [44]
Спасибо за хороший ответ.


 
Игорь Шевченко ©   (2011-02-25 16:42) [53]


> Вы ничего нового мне не поведали


Ну вот, напрасно старался.


 
картман ©   (2011-02-25 16:43) [54]


> Leon-Z ©   (25.02.11 16:20) [52]
>
>
> >Игорь Шевченко ©   (25.02.11 10:16) [37]
> >а ссылки на ник "прошиваются в код", то с виртуальными
> как?
> >[27] не осилил ?
>
> Этот псевдокод мне известен. Вы ничего нового мне не поведали.
>

а разве [27] и [44] до половины не тот же хрен, только вид сбоку?
Троечник.


 
картман ©   (2011-02-25 16:44) [55]


> Dimka Maslov ©   (25.02.11 16:09) [51]

пасиб


 
Dimka Maslov ©   (2011-02-25 16:58) [56]


> картман ©   (25.02.11 16:44) [55]

Неправда моя. Попутал. Книга называется "Дейл Роджерсон. Основы COM"



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2011.06.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.56 MB
Время: 0.004 c
2-1299063928
rodionov_uv
2011-03-02 14:05
2011.06.12
проблемы с окном


15-1298410194
Юрий
2011-02-23 00:29
2011.06.12
С днем рождения ! 23 февраля 2011 среда


15-1298628283
Очень злой
2011-02-25 13:04
2011.06.12
вложенные With


1-1256725844
JekaDefer
2009-10-28 13:30
2011.06.12
Как вывести TImage поверх DXDraw.


2-1299073367
pest
2011-03-02 16:42
2011.06.12
MySQL + Proxy + Delphi (работа с MySQL серевером через прокси)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский