Udostępnij za pośrednictwem


type_info — Klasa

Klasa Type_info opisuje typ informacji generowanych przez kompilator w ramach programu.Obiekty tej klasy skutecznie przechowują wskaźnik do nazwy typu.Klasa Type_info zapisuje również zakodowaną wartość odpowiednią do porównywania dwóch typów dla równości lub kolejności sortowania.Reguły kodowania i sekwencja typów sortowania są nieokreślone i mogą się różnić między programami.

Plik nagłówka <typeinfo> musi być włączony, aby korzystać z klasy type_info.Interfejs dla klasa type_info wygląda następująco:

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;
};

Nie można utworzyć wystąpienia obiektów z klasy type_info bezpośrednio, ponieważ klasa ma konstruktor kopii prywatnej.Jedynym sposobem, aby skonstruować (tymczasowo) obiekt type_info jest użycie operatora typeid.Operator przypisania jest również prywatny, nie można kopiować lub przypisać obiektów klasy type_info.

type_info::hash_code definiuje funkcję mieszania odpowiednią do mapowania wartości typu informacji o typach do rozłożenia wartości indeksu.

Operatory == i != służą do porównywania odpowiednio równości i nierówności z innymi obiektami type_info.

Nie ma żadnego połączenia między określoną kolejnością typów i relacją dziedziczenia.Użyj funkcji składowej type_info::before, aby określić kolejność sortowania typów.Nie ma żadnej gwarancji, że type_info::before da ten sam wynik w różnych programach lub nawet cyklach wykonania tego samego programu.W ten sposób type_info::before jest podobna do adresu operatora ()&).

Funkcja składowa Type_info::name zwraca const char * na ciąg zakończony znakiem null, reprezentujący zrozumiałą nazwę typu.Wskazywana pamięć jest buforowana i nigdy nie powinno być bezpośrednio usuwane przydzielenie.

Funkcja składowa type_info::raw_name zwraca const char * do ciągu zakończonego znakiem null, reprezentujący dekorowaną nazwę typu obiektu.Nazwa rzeczywiście jest przechowywana w formie urządzonej, aby zaoszczędzić miejsce.W związku z tym, funkcja ta jest szybsza niż type_info::name, ponieważ nie trzeba unikać oszczędzania nazwy.Ciąg zwracany przez funkcję type_info::raw_name jest przydatny w operacjach porównania, ale nie jest czytelny.Jeśli potrzebny jest ciąg czytelny dla człowieka, zamiast tego należy użyć funkcji type_info::name.

Informacja o typie jest generowana dla polimorficznych klas tylko wtedy, gdy określono opcję kompilatora /GR (Włącz typ informacji Run-Time).

Zobacz też

Informacje

Informacje o typie uzyskiwanym w czasie rzeczywistym