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