在c++中,typeid用于获知一个变量的具体类型。它是一个操作符,而不是函数!运行时获知变量类型名称,可以使用 typeid(变量).name。
RTTI 是Runtime Type Information的缩写,它提供了运行时确定对象类型的方法。
贴段code比较容易理解。
#include <typeinfo.h>
#include <iostream.h>
#include <string.h>
void main()
{
int a = 4;
cout << typeid(a).name() << endl;
cout << typeid(4).name() << endl;
cout << typeid(5.5f).name() << endl;
cout << typeid(5.5).name() << endl;
cout << typeid('c').name() << endl;
}
#include <iostream.h>
#include <string.h>
void main()
{
int a = 4;
cout << typeid(a).name() << endl;
cout << typeid(4).name() << endl;
cout << typeid(5.5f).name() << endl;
cout << typeid(5.5).name() << endl;
cout << typeid('c').name() << endl;
}
输出结果如下:
注意:在编译时要打开对RTTI的支持。
VC6.0 的配置画面如下: