type_info选件类
type_info 类描述类型在程序中生成的信息由编译器。此类对象有效存储指向一个名称为类型。type_info 类还存储一个编码值适用于相等比较的两个类型或排列顺序。编码规则和排列顺序类型的是未指定的,并且可以不同于程序之间。
AMP_LTtypeinfo> 头文件必须包括才能使用 type_info 类。type_info 类的接口是:
class type_info {
public:
virtual ~type_info();
size_t hash_code() const
_CRTIMP_PURE bool operator==(const type_info& rhs) const;
_CRTIMP_PURE bool operator!=(const type_info& rhs) const;
_CRTIMP_PURE int before(const type_info& rhs) const;
_CRTIMP_PURE const char* name() const;
_CRTIMP_PURE const char* raw_name() const;
};
,因为类只有一个私有复制构造函数,不能直接实例化 type_info 类的对象。唯一的方式构造 (临时) type_info 对象将使用 typeid 运算符。因为赋值运算符也是私有的,不能复制或分配类 type_info对象。
type_info:: hash_code 定义一个哈希函数应用于映射类型 typeinfo 的值设置为索引值的分布。
运算符 == 和 != 可用于相等还是不相等和其他 type_info 对象进行比较,分别。
没有类型排列的顺序和继承关系之间的链接。使用 type_info:: 以前 成员函数确定类型排序的序列。不能保证 type_info:: 以前 会产生相同的结果不同的程序甚至不同运行同一个程序。这样, type_info:: 以前 类似于地址 ()运算符。
type_info:: 名称 成员函数返回 const char* 设置为一个类型的可读的名称以 NULL 结尾的字符串。指向内存缓存应从不直接释放。
type_info:: raw_name 成员函数返回 const char* 到表示对象类型的修饰名以 NULL 结尾的字符串。该名称实际存储以修饰形式以节省空间。因此,,因为它不需要若要名称,此函数比 type_info:: 名称 express。type_info:: raw_name 函数返回的字符串比较而言是很有用的操作,但不可读的。如果您需要一个可读的字符串,请使用 type_info:: 名称 功能。
,仅当 /GR (启用运行时类型信息) 编译器选项,类型信息为多态类生成的。