Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

type_info (Clase)

La clase type_info describe la información de tipo generada en el programa por el compilador. Los objetos de esta clase almacenan de forma eficaz un puntero a un nombre para el tipo. La clase type_info también almacena un valor codificado adecuado para comparar dos tipos en cuanto a igualdad u orden de intercalación. Las reglas de codificación y la secuencia de intercalación para tipos no se especifican y pueden diferir entre programas.

El archivo de encabezado <typeinfo> debe incluirse para utilizar la clase type_info. La interfaz para la clase type_info es:

class type_info {
public:
    virtual ~type_info();
    size_t hash_code() const
    _CRTIMP_PURE bool operator==(const type_info& rhs) const;
    _CRTIMP_PURE bool operator!=(const type_info& rhs) const;
    _CRTIMP_PURE int before(const type_info& rhs) const;
    _CRTIMP_PURE const char* name() const;
    _CRTIMP_PURE const char* raw_name() const;
};

No puede crear instancias de objetos de la clase type_info directamente porque la clase solo tiene un constructor de copias privado. La única manera de crear un objeto type_info (temporal) es utilizar el operador typeid. Como el operador de asignación también es privado, no puede copiar ni asignar objetos de la clase type_info.

type_info::hash_code define una función hash adecuada para asignar valores de tipo typeinfo a una distribución de valores de índice.

Los operadores == y != se pueden utilizar para comparar la igualdad y la desigualdad con otros objetos type_info, respectivamente.

No hay ningún vínculo entre el orden de intercalación de tipos y las relaciones de herencia. Utilice la función miembro type_info::before para determinar la secuencia de intercalación de tipos. No hay ninguna garantía de que type_info::before produzca el mismo resultado en programas diferentes o incluso ejecuciones diferentes del mismo programa. De esta manera, type_info::before es similar al operador (&) de dirección.

La función miembro type_info::name devuelve const char* a una cadena finalizada en null que representa el nombre legible del tipo. La memoria a la que se señala se almacena en caché y nunca debe desasignarse directamente.

La función miembro type_info::raw_name devuelve const char* a una cadena finalizada en null que representa el nombre representativo del tipo de objeto. El nombre se almacena realmente en forma representativa para ahorrar espacio. Por consiguiente, esta función es más rápida que type_info::name porque no necesita anular la aplicación de nombre representativo. La cadena devuelta por la función type_info::raw_name es útil en operaciones de comparación pero no es legible. Si necesita una cadena legible, utilice en su lugar la función type_info::name.

La información de tipo se genera para las clases polimórficas solo si se especifica la opción del compilador /GR (Habilitar información de tipo en tiempo de ejecución).

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft