c++获取类型信息

获取类型信息 typeid

typeid运算符用来获取一个表达式的类型信息.

  1. 对于基本类型数据, 类型信息比较简单, 主要指数据的类型;
  2. 对于对象(类类型的数据), 类型信息指: 对象所属的类, 所包含的成员, 所在的继承关系.

类型信息是创建数据的模板,数据占用多大内存、能进行什么样的操作、该如何操作等,这些都由它的类型信息决定。

typeid(DataType);
typeid(expression);

typeid 会把获取到的类型信息保存到一个 type_info 类型的对象里面,并返回该对象的常引用;当需要具体的类型信息时,可以通过成员函数来提取。

可以发现,不像 Java、C# 等动态性较强的语言,C++ 能获取到的类型信息非常有限,也没有统一的标准,如同“鸡肋”一般,大部分情况下我们只是使用重载过的“==”运算符来判断两个类型是否相同。

比较如下typeid是否相等:

typeid(x)==typeid(y) int char char* str a b f a/b
int true
char false
char* false
str true
a true true
b true true
f false
a/b true
posted @ 2022-07-10 15:22  编程驴子  阅读(193)  评论(0编辑  收藏  举报