operador typeid en C++ con ejemplos

typeid es un operador en C++. 

Sintaxis:  

typeid(type);
OR
typeid(expression);

Parámetros: el operador typeid acepta un parámetro, según la sintaxis utilizada en el programa:  

  • type : este parámetro se pasa cuando se necesita la información de tipo de tiempo de ejecución de una variable o un objeto. En esto, no hay una evaluación que deba hacerse dentro del tipo y simplemente se debe conocer la información del tipo.
  • expresión: este parámetro se pasa cuando se necesita la información de tipo de tiempo de ejecución de una expresión. En esto, primero se evalúa la expresión. Luego se proporciona la información de tipo del resultado final.

Valor de retorno: este operador proporciona la información de tipo de tiempo de ejecución del parámetro especificado y, por lo tanto, se devuelve esa información de tipo , como una referencia a un objeto de clase type_info .
Uso: el operador typeid() se usa de manera diferente según el tipo de operando. 

  1. Cuando el operando es una variable o un objeto.

    CPP

    // C++ program to show the use of typeid operator
      
    #include <iostream>
    #include <typeinfo>
    using namespace std;
      
    int main()
    {
        int i, j;
        char c;
      
        // Get the type info using typeid operator
        const type_info& ti1 = typeid(i);
        const type_info& ti2 = typeid(j);
        const type_info& ti3 = typeid(c);
      
        // Check if both types are same
        if (ti1 == ti2)
            cout << "i and j are of"
                 << " similar type" << endl;
        else
            cout << "i and j are of"
                 << " different type" << endl;
      
        // Check if both types are same
        if (ti2 == ti3)
            cout << "j and c are of"
                 << " similar type" << endl;
        else
            cout << "j and c are of"
                 << " different type" << endl;
      
        return 0;
    }
    Producción

    i and j are of similar type
    j and c are of different type
  2. Cuando el operando es una expresión.

    CPP

    // C++ program to show the use of typeid operator
      
    #include <iostream>
    #include <typeinfo>
    using namespace std;
      
    int main()
    {
        int i = 5;
        float j = 1.0;
        char c = 'a';
      
        // Get the type info using typeid operator
        const type_info& ti1 = typeid(i * j);
        const type_info& ti2 = typeid(i * c);
        const type_info& ti3 = typeid(c);
      
        // Print the types
        cout << "ti1 is of type "
             << ti1.name() << endl;
      
        cout << "ti2 is of type "
             << ti2.name() << endl;
      
        cout << "ti3 is of type "
             << ti3.name() << endl;
      
        return 0;
    }
    Producción: 

    ti1 is of type f
    ti2 is of type i
    ti3 is of type c

     

Publicación traducida automáticamente

Artículo escrito por iamyateesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *