operador typeid em C++

O operador typeid é usado para obter as informações de tipo de uma expressão. As informações de tipo são muito importantes para linguagens de programação, pois descrevem várias propriedades dos dados:

  • Para dados de tipos básicos (int, float e outros tipos integrados em C++), o conteúdo contido nas informações de tipo é relativamente simples, referindo-se principalmente ao tipo de dados.

  • Para dados de tipo de classe (ou seja, objetos), as informações de tipo referem-se à classe à qual o objeto pertence, aos membros que ele contém, ao relacionamento de herança, etc.

As informações de tipo são um modelo para a criação de dados.Quanto de memória os dados ocupam, quais operações eles podem realizar, como operá-los, etc., são todos determinados por suas informações de tipo.

O objeto de operação de typeid pode ser uma expressão ou um tipo de dados. Aqui estão duas maneiras de usá-lo:

typeid(tipo de dados)

typeid(expressão)

dataType é o tipo de dados, expression é a expressão, que é muito semelhante ao operador sizeof, exceto que sizeof às vezes pode omitir parênteses ( ), enquanto typeid deve ter parênteses.

typeid salvará as informações de tipo obtidas em um objeto do tipo type_info e retornará uma referência constante do objeto; quando informações de tipo específico são necessárias, elas podem ser extraídas por meio de funções de membro. O uso de typeid é muito flexível, veja o exemplo a seguir (só pode ser executado em VC/VS):

    #include <iostream>
    #include <typeinfo>
    using namespace std;
    class Base{ };
    struct STU{ };
    int main(){
        //获取一个普通变量的类型信息
   

おすすめ

転載: blog.csdn.net/shiwei0813/article/details/132781803