C++ typeid i informacje o typie podczas działania programu

Informacje o typie czasu wykonywanie (Run Time Type Information RTTI)

#include <typeinfo>
typeid(wyrażenie).informacja


informacja:
-name()
  *int nX = 10;
    time_t czas time(NULL); tmData = *localtime(&Czas);
    cout<<typeid(nX).name(); //wynik "int"
    cout<<typeid(Data).name(); //wynik "struct"
  *Jeżeli to nazwa typu w czytelnej i przypomniej dla człowieka formie. Możemy ją przechowywać i operować nią tak jak każdym innym napisem.

-nazw_name()
   *Zwraca nazwę typu wewnętrznie używaną przez kompilator. Taka nazwa musi być unikalna dlatego zawiera różne "dekoracje" znak, jak? czy @. nie jest czytelnia dla człowieka, ale można ewentualnie służyć  w celach porównawczych.


np. unsigned "X"

if (typeid(X) == typeid(unsigned)) //inaczej != typeid(X/0,618)
  cout << "świetnie nasz kompilator działa";


typeid może też służyć nam do sprowadzenia klasy, do której należy polimorficzny obiekt wskazawany przez wskaźnik np.:

IAnimal* pZwierzę = new CBird;
cout << typeid(pZwierze).name();
//wynik "Class Animal*"
cout << typeid (*pZwierzę).name();
//wynik "ClassCBird";

Komentarze

Popularne posty z tego bloga

Kubernetes

Helm

Ansible Tower / AWX