powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / К виртуальным функциям
6 сообщений из 106, страница 5 из 5
К виртуальным функциям
    #39418803
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglЭлементарно
Код: plaintext
1.
2.
3.
4.
5.
void myfunc(Base *pb)
{
   Derived *px = dynamic_cast<Derived*>(pb);
....
}


Ну, и какой инфы компилятору не хватает чтобы сгенерировать код для всех пар base-derived? ))
...
Рейтинг: 0 / 0
К виртуальным функциям
    #39418850
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky,

реальная пара будет известна только в рантайме
...
Рейтинг: 0 / 0
К виртуальным функциям
    #39418886
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemarglреальная пара будет известна только в рантайме
Да, как только становится известно значение указателя vtable - сразу понятно какая пара. Никакой дополнительной инфы хранить не надо.
Там тупо простейший switch:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
switch(ptr->vptr) {
case &Derived::vtable: 
  ptr2 = cast<Base, Derived>(ptr);
  break;
default:
  throw bad_cast();
}


Если какие-то компиляторы этот switch, состоящий в большинстве случаев из пары условных переходов и вызовов пустых инлайн функций, реализуют как какие-то лукапы в каких-то таблицах связанных с RTTI - это проблема этих компиляторов.
Говорить, что это все должно быть в RTTI - нонсенс
...
Рейтинг: 0 / 0
К виртуальным функциям
    #39418973
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglAnatoly Moskovsky,

реальная пара будет известна только в рантайме

почему пара?
Base вообще фиксирован, если это не шаблонная функция.
...
Рейтинг: 0 / 0
К виртуальным функциям
    #39419033
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky,

У тебя так все просто. А файл rtti.c из сорцов gcc имеет худо бедно 1600 строк.
...
Рейтинг: 0 / 0
К виртуальным функциям
    #39419283
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglУ тебя так все просто. А файл rtti.c из сорцов gcc имеет худо бедно 1600 строк.
Так я не говорю, что нельзя сделать сложно. Я говорю что мы не обязаны это делать ))
...
Рейтинг: 0 / 0
6 сообщений из 106, страница 5 из 5
Форумы / C++ [игнор отключен] [закрыт для гостей] / К виртуальным функциям
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]