¿Qué es typeId en c ++?

¿Qué es typeId en c ++?

C++ es un poderoso lenguaje de programación que ofrece una amplia gama de aplicaciones a sus usuarios. Un aspecto importante del lenguaje de programación de C ++ es su capacidad para admitir la identificación del tipo de ejecución. El typeid se encuentra entre esas identificaciones de tipo de ejecución ampliamente utilizadas en los programas de C ++.

Si no sabes que typeid está en C ++, siga las pautas de este artículo.

Operador TypeID en C++

El typeid es un operador incorporado en lenguaje de programación C ++ que permite a los usuarios determinar el tipo de datos de una variable en el tiempo de ejecución. El valor devuelto por typeid es de tipo "TypeInfo", Que proporciona varios detalles sobre el tipo de objeto. Es importante en aquellos casos en los que un programa necesita realizar múltiples operaciones en función del tipo de datos que se utiliza.

Sintaxis de typeID

La sintaxis de typeid El operador en C ++ es el siguiente:

typeID (type)

O:

typeID (exp)

El typeid El operador en C ++ acepta cualquiera de estos dos parámetros.

Tipo: Cuando necesitamos conocer el tipo de tiempo de ejecución de una variable u objeto, suministramos el argumento de tipo dentro del typeid operador. Solo se necesita el argumento de tipo en este caso, y la información del tipo de tiempo de ejecución se recopilará sin ninguna evaluación adicional o previa computación.

Expresión: Cuando necesitamos detalles sobre el tipo de tiempo de ejecución de una expresión, el parámetro de expresión se da dentro del typeid operador. La información sobre el tipo de ejecución se toma después de que se haya evaluado la expresión de este parámetro.

Cuando se usa con un typeid, Proporciona información sobre el tipo que corresponde al identificador. Cuando se usa con una expresión, proporciona información sobre el tipo dinámico del objeto.

Usos del operador de typeID

El typeid El operador se puede usar de esta manera.

  • Cuando el operando actúa como una variable del objeto
  • Cuando el operando es una expresión

1: Cuando el operando actúa como variable del objeto

El typeid El operador se puede usar en operandos cuando actúan como una variable del objeto.

#incluir
#incluir
usando el espacio de nombres STD;
int main ()
int i;
Char Ch;
flotante fl;
doble dB;
const type_info & type_i = typeId (i);
const type_info & type_ch = typeId (ch);
const type_info & type_fl = typeId (fl);
const type_info & type_db = typeId (db);
cout<<"Type of int i is: "<cout<<"\nType of character ch is: "<cout<<"\nType of float fl is: "<cout<<"\nType of double db is: "<regresar 0;

En el código anterior, estamos declarando cuatro variables diferentes, cada una de tipo de datos separados. Entonces estamos usando el typeid operador en estas variables e imprima sus tipos de datos utilizando declaraciones de Cout.

Producción

2: Cuando el operando es una expresión

El typeid El operador también se puede usar donde el operando se trata como una expresión.

#incluir
#incluir
usando el espacio de nombres STD;
int main ()
int i = 7;
char ch = 'a';
flotante fl = 42.4;
doble db = 4.279;
const type_info & type_a = typeId (i+ch);
const type_info & type_b = typeId (i*fl);
const type_info & type_c = typeId (db*fl);
const type_info & type_d = typeId (i+db);
cout<<"expression i+ch : "<cout<<"\nexpression i*fl : "<cout<<"\nexpression db*fl : "<cout<<"\nexpression i+db : "<regresar 0;

En el código anterior, inicializamos cuatro variables de diferentes tipos de datos. Luego evaluamos algunas expresiones y calculamos su tipo usando la C++ typeid() operador.

Producción

Ventajas y desventajas de typeId en c++

El typeid es útil al escribir código que funcione con objetos que no se conocen hasta el tiempo de ejecución. Por ejemplo, supongamos que una función toma un puntero vacío como parámetro. Puede usar typeid para determinar si el puntero es a un int o un doble, lo que puede afectar significativamente cómo debe operar la función.

Además del nombre de tipo, el "typeInfo"El objeto también proporciona otros detalles sobre el tipo. Éstas incluyen:

  • Si el tipo es un tipo fundamental, un tipo de puntero o un tipo definido por el usuario.
  • Si el tipo es "const" o "volátil".
  • Si el tipo es un tipo de clase y, de ser así, si es polimórfico.
  • Si el tipo es un tipo de matriz, y si es así, cuáles son las dimensiones.
  • Si el tipo es un tipo de referencia.

El typeid También es útil cuando se trata de plantillas y funciones que toman un número variable de argumentos. Usando el "typeid"Operador, puede tomar acciones de tipo específicas en tiempo de ejecución, como elegir la plantilla o función correcta para usar.

Un posible inconveniente de typeid es que es algo lento. Por lo general, es más lento que otros tipos de comprobación de tipo, como parámetros de plantilla o verificaciones de tipo de compilación, ya que examina el tipo de objeto durante el tiempo de ejecución.

Conclusión

El "typeidEl operador en C ++ proporciona información valiosa sobre el tipo de datos de una variable o un objeto. Permite a los programadores realizar acciones específicas de tipo en tiempo de ejecución y se puede usar cuando el operando actúa como una variable, o cuando el operando es una expresión.