![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
1)Скажите пожалуйста, когда инициализируется базовый указатель на таблицу виртульных функций, то как он может помочь в результате разрыботки того или иного приложения, или же он нужен лишь для компилятора. И насколько я понимаю в нем содержатся указатели на собственно виртуальные функции, это так?
2)Насколько я понял каждый виртульный класс (унаследовавший виртуалyю функцию) имеет свою таблицу. 3)Базовый класс имеет свою таблицу виртуальных функций 4)Чисто виртуальная функция заносится в ТВФ? -------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: 4 Всего: 41 |
1. Реализация виртуальных функций дело компилятора. Использование реализации виртуальных методов при разработке есть нежелательный хак.
2. Да. Каждый класс имеющий виртуальные методы имеет и таблицу. В принципе, если не один из виртуальных методов базового класса не перекрывается, компилятор может использовать таблицу базового. 3. Вытекает из 2. 4. В этом смысле они ни чем не отличаются. -------------------- Волны гасят ветер... |
|||
|
||||
| Royan |
|
|||
|
Dreamer ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1708 Регистрация: 14.9.2002 Где: Лондон Репутация: нет Всего: 15 |
В каком смысле не желательный хак? Собственно суть первого вопроса в том каким образом можно извлеч выгоду из использования указателя (__vfptr в случае VC++6). Может хитрость какая или полезность, вот что меня интересует.
-------------------- Открыта вакансия Junior Java Developer'а в нашем лондонском офисе, подробнее можно узнать здесь |
|||
|
||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: 4 Всего: 41 |
В том смысле, что это выходит за рамки языка С++ в его нормальном применении, и делать так весьма не желательно. -------------------- Волны гасят ветер... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |