Udostępnij za pośrednictwem


Klasa type_info

Type_info klasy opisuje typ informacji generowanych w programie przez kompilator.Obiekty tej klasy przechowywać skutecznie wskaźnik do nazwy typu.Type_info Klasa zapisuje również zakodowaną wartość nadające się 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 może różnić się między programami.

<typeinfo> plik nagłówkowy musi być włączone, aby użyć type_info klasy.Interfejs dla type_info klasa jest:

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ć instancji obiektów z type_info klasy bezpośrednio, ponieważ klasa ma konstruktora prywatnej kopii.Jedynym sposobem na budowę (tymczasowe) type_info celem jest wykorzystanie typeid operatora.Ponieważ operatorem przypisania jest również prywatne, nie można kopiować lub przypisać obiektów klasy type_info.

type_info::hash_code definiuje funkcję mieszania, nadające się do mapowania wartości typu informacji o typach do dystrybucji wartości indeksu.

Podmioty gospodarcze == i != mogą być używane do porównywania równości i nierówność z innymi type_info obiektów, odpowiednio.

Nie ma żadnego łącza między porządek sortowania typów i relacje dziedziczenia.Użyj type_info::before funkcji składowej do określenia sekwencji sortowania typów.Nie ma żadnych gwarancji, że type_info::before da ten sam wynik w różnych programach lub nawet w różnych uruchomień tego samego programu.W ten sposób type_info::before jest podobna do adresu z (&) operatora.

Type_info::name Członkowskie, funkcja zwraca const char * ciąg zakończony znakiem null, reprezentujących zrozumiałą nazwę typu.Pamięci wskazywanej są buforowane i nigdy nie powinna przydzielenia bezpośrednio.

Type_info::raw_name Członkowskie, funkcja zwraca const char * ciąg zakończony znakiem null, reprezentujących dekoracyjną nazwę typu obiektu.Nazwa rzeczywiście jest przechowywana w postaci urządzony, aby zaoszczędzić miejsce.W konsekwencji, funkcja ta jest szybsza niż type_info::name , ponieważ nie trzeba undecorate nazwy.Ciąg zwracany przez type_info::raw_name funkcja jest przydatna w operacjach porównania, ale nie jest czytelny.Ciąg czytelny dla człowieka, należy użyć type_info::name zamiast działać.

Typ informacji jest generowany dla polimorficzne klas tylko wtedy, gdy się przełączników /GR (Włącz Run-Time typu informacji) określono opcję kompilatora.

Zobacz też

Informacje

Informacje o typie Run-Time