typeid 运算符用来获取一个类型的类型信息,他的操作对象可以是表达式,也可以是数据类型:
typeid( dataType )
typeid( expression )
typeid 会把获取到的类型信息保存到一个 type_info 类型的对象里面,并返回该对象的常量引用;可以通过成员函数name()来提取类型信息字符串,但C++没有规定name()返回的字符串格式,所以不同的编译器返回的格式是不一样的。
此外typeid还可以用于的判断。
#include <iostream>
#include <typeinfo>
using namespace std;
class A{
};
int main()
{
cout<<"the type of "<< 1 << " is:" << typeid(1).name() << endl; //输出:the type of 1 is:i
cout<<"the type of "<< "int" << " is:" << typeid(int).name() << endl; //输出:the type of int is:i
cout<<"the type of "<< 1.1 << " is:" << typeid(1.1).name() << endl; //输出:the type of 1.1 is:d
cout<<"the type of "<< "double" << "