C++, как работает RTTI

223
24 мая 2021, 02:20

Я бы хотел понять, как в C++ работает RTTI.

Мне понятно, как вызываются виртуальные методы. Это происходит через таблицу виртуальных методов, указатель на эту таблицу размещается в объекте каждого класса, который содержит виртуальные методы. У каждого класса с виртуальными методами есть своя таблица виртуальных методов.

Но мне не совсем понятно, как во время исполнения определяется тип объекта. В объектах размещается какая-то дополнительная информация? Например, ID типа.

И как следствие, я не понимаю, велико ли отличие между ручным приведением типов при помощи dynamic_cast и использованием паттерна visitor для реализации двойной диспетчеризации.

READ ALSO
VScode не видит заголовочных файлов

VScode не видит заголовочных файлов

Собрал библиотеку fltkЗаголовочныее файлы лежат по пути /usr/local/include, библиотеки /usr/local/lib

125
C++ | Websocketpp | отправить сообщение при on_tls_init

C++ | Websocketpp | отправить сообщение при on_tls_init

Ниже закомментирован код который должен работать, но выкидывает исключениеКак это исправить? В логе: invalid state

109
Дочерний блок выходит за родительский блок

Дочерний блок выходит за родительский блок

Есть header, высота 100vh, внутри него есть блок offset с двумя блоками и кнопкойПри размере экрана в 320 px этот блок съезжает вниз, выходя за родительский...

141
Как footer заложить на низ?

Как footer заложить на низ?

Всем привет! Никак не могу решить проблемуFooter никак не хочет прижиматься к низу, почему? Подскажите

267