| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Множественное наследование. Организация памяти? |
| Автор: jonie 3.6.2007, 11:46 |
| Итак, вопрос собственно сформирован в subj-е.... надо вспомнить как организуется таблица виртуальных функций (ТВМ) в случае множественного наследования (как инициализируется, чем и кем, и как размещается в памяти, к чему привязывается (к каждому экземпляру класса (сколько экземпляров столько и таблиц)), или же для каждого "класса" (сколько классов, столько и таблиц), как компилятор осуществляет доступ к таким методам(по формуле delta+index (delta - смещение в таблице для класса, index - номер функции класса)?)., жалетально с картинками в памяти (иначе легко запутаться)... В случае одинарного наследования вроде помнится... а вот случай множественного чего-то никак (... Понимаю, что ща меня ткнут в гугл... ну уж если будете тыкать, то уж сразу на конкретные линки плииз...и желательно с картинками) Думаю тема будет интересна, не только мне. |
| Автор: Daevaorn 3.6.2007, 12:45 |
| Это всё детали реализации конкретного компилятора. Поэтому нужно либо указаать интересующий, либо всё будет чистой теорией, не сопряженной с практикой. А google действительно что-то знает: http://cpptips.hyperformix.com/MultipleInher.html http://en.wikipedia.org/wiki/Virtual_table#Multiple_inheritance |
| Автор: jonie 3.6.2007, 12:55 |
| этого "маловато" мягко скажемс.... Ок. Рассмотрим давайте VC от M$ (COM и иже с ними используют одну модель, я полгаю => все компиляторы для винды , поддерживающие COM взаимодействие должны(так или иначе,ибо совместимость бинарная) поддерживать одну модель, так какую?) впрочем, я также пологаю что и теория будет очень даже полезна.... важно даже не то "где все это лежит", а "как это оргинизуется" как с т.з. логики заполнения, так и вызова.... |
| Автор: jonie 6.6.2007, 23:31 |
| ну че... профи нет ?( |
| Автор: JackYF 7.6.2007, 04:47 |
| jonie, математикой пахнет. Доказательствами, теорией и т.д. Лично я уже забил. Мне хватает представления о том, как оно организовано. Если никто больше не вызовется рисовать/искать подробные схемы с примерами, значит, остальные думают примерно так же. |
| Автор: MAKCim 7.6.2007, 10:36 |
| jonie, берешь любой компилятор, который можеть генерировать код на ассемблере и... изучаешь сей код кстати получишь самую достоверную и конкретную информацию дальше если учесть, что сам принцип скорее всего будет справедлив для всех компиляторов, получишь в какой-то мере общий результат |