一般要用到头文件
#include<typeinfo>
像python这样的语言要判断一个变量类型是很简单的直接type(变量名)就可以。而C++中是这样用的:
#include<iostream>
#include<typeinfo>
using namespace std;
int main(){
enum Color {red,yellow,blue,white,black};
enum Day {Monday,Tuesday,Wendesday,Thursday,Friday};
Color color;
Day Mon=Monday;
int i,j,k;
char a,b,c;
double A,B,C;
cout<<"Type of color:"<<typeid(color).name()<<endl;
cout<<"Type of Mon:"<<typeid(Mon).name()<<endl;
cout<<"Type of i:"<<typeid(i).name()<<endl;
cout<<"Type of A:"<<typeid(A).name()<<endl;
cout<<"whether the type of i is int: "<<(typeid(int)==typeid(i))<<endl;
cout<<"whether the type of i is double: "<<(typeid(double)==typeid(i))<<endl;
return 0;
}
上面代码我们定义的变量类型有枚举类型(Color和Day),int,double,char,代码输出是:
Type of color:Z4mainE5Color
Type of Mon:Z4mainE3Day
Type of i:i
Type of A:d
whether the type of i is int: 1
whether the type of i is double: 0
这里可以看出typeid().name()输出的类型名是简称int是i,double是d,但是对于枚举类型是全称的。
如代码所示我们也可以直接使用判断语句来判断:(typeid(double)==typeid(i))
本文详细介绍了如何在C++中使用typeid操作符判断变量类型,包括基本数据类型和枚举类型的判断方法。通过实例代码展示了typeid操作符的使用,以及如何比较不同类型之间的相等性。
1133

被折叠的 条评论
为什么被折叠?



