Зависит.
Вы можете использовать typeid
для быстрой и грязной идентификации типа.
Или вы можете использовать dynamic_cast
, чтобы проверить, есть ли у вас объект данного типа (Удивительно, но это может быть быстрее, чем typeid
).
Если вас интересует наиболее производный объект, например, с целью хеширования, то если статически известный класс является полиморфным, вы можете использовать dynamic_cast<void*>
.Это просто косвенная идентификация типа.Он дает пустой указатель на объект самого производного типа, который вы можете рассматривать как уникальный «адрес» объекта.
Но, как правило, не стоит пытаться идентифицировать точный тип, за исключением сериализации.- и сериализация намного больше, чем это!
Приветствия & hth.