时间:2021-05-20
type_info 类
type_info 类描述编译器在程序中生成的类型信息。此类的对象可以有效存储指向类型的名称的指针。 type_info 类还可存储适合比较两个类型是否相等或比较其排列顺序的编码值。类型的编码规则和排列顺序是未指定的,并且可能因程序而异。
必须包含 <typeinfo> 标头文件才能使用 type_info 类。 type_info 类的接口是:
您不能直接实例化 type_info 类的对象,因为该类只有一个私有复制构造函数。构造(临时)type_info 对象的唯一方式是使用 typeid 运算符。由于赋值运算符也是私有的,因此不能复制或分配类 type_info 的对象。
type_info::hash_code 可定义适合将 typeinfo 类型的值映射到索引值的分布的哈希函数。
运算符 == 和 != 分别用于与其他 type_info 对象比较是否相等和不相等。
类型的排列顺序与继承关系之间没有关联。使用 type_info::before 成员函数可确定类型的排序顺序。不能保证 type_info::before 在不同的程序中(甚至是多次运行同一程序时)会产生相同的结果。这样,type_info::before 类似于 address-of (&) 运算符。
type_info::name 成员函数可将 const char* 返回到以 null 结尾的字符串,该字符串表示类型的用户可读名称。将缓存所指向的内存,应该从不直接释放它。
type_info::raw_name 成员函数可将 const char* 返回到以 null 结尾的字符串,该字符串表示对象类型的修饰名称。该名称实际上以其修饰的形式存储以节省空间。因此,此函数比 type_info::name 更快,因为它不需要取消修饰名称。 type_info::raw_name 函数返回的字符串在比较运算符中很有用,但它不可读。如果您需要用户可读的字符串,请改用 type_info::name 函数。
bad_typeid 异常
当 typeid 的操作数是 Null 指针时,typeid 运算符将引发 bad_typeid 异常。
语法
备注
bad_typeid 的接口为:
以下示例演示引发 bad_typeid 异常的 typeid 运算符。
输出
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
typeid关键字注意:typeid是操作符,不是函数。这点与sizeof类似)运行时获知变量类型名称,可以使用typeid(变量).name()需要注意不是所
1、RTTI:运行时类型信息可以让你在程序运行时发现和使用类型信息。在Java中运行时识别对象和类的信息有两种方式:传统的RTTI,以及反射。下面就来说下RTT
RTTI,即Run-TimeTypeIdentification,运行时类型识别。运行时类型识别是Java中非常有用的机制,在Java运行时,RTTI维护类的相
运行时类型识别(RTTI,Run-TimeTypeIdentification)是Java中非常有用的机制,在Java运行时,RTTI维护类的相关信息。多态(p
异常(exception)是C++语言引入的错误处理机制。它采用了统一的方式对程序的运行时错误进行处理,具有标准化、安全和高效的特点。C++为了实现异常处理,引