Informações de tipo de tempo de execução
As informações de tipo em tempo de execução (RTTI) são um mecanismo que permite que o tipo de um objeto seja determinado durante a execução do programa. A RTTI foi adicionada à linguagem C++ porque muitos fornecedores de bibliotecas de classes implementavam essa funcionalidade de maneira independente. Isso causou incompatibilidades entre as bibliotecas. Assim, ficou claro que era necessário o suporte a informações de tipo em tempo de execução no nível da linguagem.
Para uma questão de clareza, esta discussão sobre a RTTI é quase que totalmente restrita a ponteiros. No entanto, os conceitos abordados também se aplicam a referências.
Há três principais elementos de linguagem C++ para as informações de tipo em tempo de execução:
O operador dynamic_cast.
Usado para a conversão de tipos polimorfos.
O operador typeid.
Usado para identificar o tipo exato de um objeto.
A classe type_information.
Usada para manter as informações de tipo retornadas pelo operador typeid.