typeid 表示C++ RTTI运算符,也是C++关键字。它返回一个 std::type_info 对象,该对象保存(动态)类型特定的信息。

据我从各种来源了解到,使用<typeinfo>时必须包含typeid,否则程序格式错误。实际上,如果我不包含上述 header ,我的gcc5.2编译器甚至不会编译该程序。我不明白为什么要强制使用C++关键字的 header 包含。我理解为每当我们使用在该 header 中声明/定义的对象时都要强制 header ,但是typeid不是类类型。那么,强制执行包含头<typeinfo>的原因是什么?

最佳答案

下一段:



因为它是一个左值表达式,所以使用reference initialization来声明std::type_info的初始化程序。 <typeinfo>包含that object的定义。

关于c++ - 为什么在使用typeid运算符时需要#include <typeinfo>?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33704978/

10-11 22:54
查看更多