L'operatore typeid permette di determinare il tipo di un oggetto a tempo di esecuzione. In accordo con lo standard C++, questo operatore restituisce un riferimento costante ad un oggetto di tipo type_info.
Di seguito un esempio di codice:
001// expre_typeid_Operator.cpp
002// compile with: /GR /EHsc
003
004#include <iostream>
005#include <typeinfo.h>
006
007class Base {
008public:
009 virtual void vvfunc() {}
010};
011
012class Derived : public Base {};
013
014using namespace std;
015
016int main()
017{
018 Derived* pd = new Derived;
019 Base* pb = pd;
020 cout << typeid( pb ).name() << endl; //prints "class Base *"
021 cout << typeid( *pb ).name() << endl; //prints "class Derived"
022 cout << typeid( pd ).name() << endl; //prints "class Derived *"
023 cout << typeid( *pd ).name() << endl; //prints "class Derived"
024 delete pd;
025}
E' bene ricordare che il testo riportato dalla funzione name è dipendente dalla piattaforma utilizzata.
Vota questo articolo per primo
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5