![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
Итак, вопрос собственно сформирован в subj-е.... надо вспомнить как организуется таблица виртуальных функций (ТВМ) в случае множественного наследования (как инициализируется, чем и кем, и как размещается в памяти, к чему привязывается (к каждому экземпляру класса (сколько экземпляров столько и таблиц)), или же для каждого "класса" (сколько классов, столько и таблиц), как компилятор осуществляет доступ к таким методам(по формуле delta+index (delta - смещение в таблице для класса, index - номер функции класса)?)., жалетально с картинками в памяти (иначе легко запутаться)...
В случае одинарного наследования вроде помнится... а вот случай множественного чего-то никак (... Понимаю, что ща меня ткнут в гугл... ну уж если будете тыкать, то уж сразу на конкретные линки плииз...и желательно с картинками) Думаю тема будет интересна, не только мне. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
Это всё детали реализации конкретного компилятора. Поэтому нужно либо указаать интересующий, либо всё будет чистой теорией, не сопряженной с практикой. А google действительно что-то знает:
http://cpptips.hyperformix.com/MultipleInher.html http://en.wikipedia.org/wiki/Virtual_table...ple_inheritance |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
этого "маловато" мягко скажемс....
Ок. Рассмотрим давайте VC от M$ (COM и иже с ними используют одну модель, я полгаю => все компиляторы для винды , поддерживающие COM взаимодействие должны(так или иначе,ибо совместимость бинарная) поддерживать одну модель, так какую?) впрочем, я также пологаю что и теория будет очень даже полезна.... важно даже не то "где все это лежит", а "как это оргинизуется" как с т.з. логики заполнения, так и вызова.... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
ну че... профи нет ?(
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
jonie, математикой пахнет. Доказательствами, теорией и т.д.
Лично я уже забил. Мне хватает представления о том, как оно организовано. Если никто больше не вызовется рисовать/искать подробные схемы с примерами, значит, остальные думают примерно так же. |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
не понятно причем тут множестваенное наследование С++ и MS COM. Если интересует COM, то тогда явно не тот раздел выбрал для вопроса. |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
jonie,
берешь любой компилятор, который можеть генерировать код на ассемблере и... изучаешь сей код кстати получишь самую достоверную и конкретную информацию дальше если учесть, что сам принцип скорее всего будет справедлив для всех компиляторов, получишь в какой-то мере общий результат Это сообщение отредактировал(а) MAKCim - 7.6.2007, 10:38 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |