typeid


Mit dem Schlüsselwort typeid(expression) kann man den Typ eines Ausdrucks überprüfen. Hier zunächst ein einfaches Beispiel für die Verwendung von typeid(expression).name():

#include <iostream>
#include <conio.h>
#include <string>
using namespace std;

int main()
{
    int    a;
    float  b;
    double c;
    string d;
    cout <<  typeid(a).name() << endl;
    cout <<  typeid(b).name() << endl;
    cout <<  typeid(c).name() << endl;       
    cout <<  typeid(d).name() << endl;           
    getch();
}

Man kann damit auf die Gleichheit/Verschiedenheit von beliebigen Typen testen:

#include <iostream>
#include <conio.h>
using namespace std;

class X{};

int main()
{
//X *a, *b ; 
  X *a, **b ; 
  if (typeid(a) != typeid(b))
  {
    cout << "a und b sind im Typ verschieden." << endl;
    cout << "a is: " << typeid(a).name() << endl;
    cout << "b is: " << typeid(b).name() << endl;
  }
  else
  {
    cout << "a und b sind im Typ gleich." << endl;
    cout << "a ist vom Typ " << typeid(a).name() << endl;
    cout << "b ist vom Typ " << typeid(b).name() << endl;
  }
 
  getch();
}

Bezüglich der Fehlermöglichkeiten siehe: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclang/html/_pluslang_typeid_operator.asp


Übersicht Keywords C++