classe di type_information
type_information la classe descrive le informazioni sul tipo generate nel programma dal compilatore.Gli oggetti di questa classe efficacemente archiviano un puntatore a un nome per il tipo.type_information la classe archivia un valore codificato appropriato per confrontare due tipi di uguaglianza o confrontare l'ordine.La codifica regole e la sequenza di ordinamento per i tipi non è specificata e può variare a seconda dei programmi.
Il <typeinfo> il file di intestazione deve essere importato da utilizzare type_information classe.l'interfaccia per type_information la classe è:
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;
};
Non è possibile creare un'istanza degli oggetti di type_information classe direttamente, poiché la classe dispone di un costruttore di copia privato.L'unico modo per creare un (temporanea) type_information l'oggetto è di utilizzare typeid operatore.Poiché l'operatore di assegnazione viene inoltre privato, non è possibile copiare o assegnare gli oggetti di classe type_information.
type_information:: hash_code definisce una funzione hash appropriata per eseguire il mapping di valori di tipo typeinfo in una distribuzione dei valori di indice.
gli operatori == e != può essere utilizzato per confrontare l'uguaglianza e la disuguaglianza con un'altra type_information oggetti, rispettivamente.
Non esiste un collegamento tra l'ordine il confronto dei tipi e le relazioni di ereditarietà.utilizzare type_information:: prima funzione membro per determinare la sequenza di ordinamento di tipi.Non è garantito che type_information:: prima restituisce lo stesso risultato in programmi differenti o addirittura diverse esecuzioni dello stesso programma.in questo modo, type_information:: prima è simile al indirizzo-di (&) operatore.
type_information:: nome la funzione membro restituisce un' argomento char* const in una stringa con terminazione null che rappresenta il nome leggibile del tipo.La memoria a cui fa riferimento a viene memorizzato nella cache e deve essere rilasciata mai.
type_information:: raw_name la funzione membro restituisce un' argomento char* const in una stringa con terminazione null che rappresenta il nome decorato del tipo di oggetto.Il nome viene effettivamente archiviato nel formato decorato per risparmiare spazio.Pertanto, questa funzione è più veloce di type_information:: nome poiché non richiede il undecorate il nome.la stringa restituita dal type_information:: raw_name la funzione è in confronto operazioni utili ma non è leggibile.Se è necessaria una stringa leggibile, utilizzare type_information:: nome funzione anziché.
Le informazioni sui tipi vengono generate per le classi polimorfiche solo se /GR (Abilitare le informazioni sul tipo di runtime) è specificata l'opzione del compilatore.