运行时类型识别RTTI
1、什么是RTTI? RTTI:Run-Time Type Identification 运行时类型识别 程序在运行时能够使用 基类 的 指针 或引用来检查这些指针或引用所指的对象的实际的派生类。 在这里要用到两个C++中的关键字: typeid 和 dynamic_cast 2、typeid typeid是C++中一个用来获取变量类型的关键字,用法跟使用函数一样 typeid(xxx) typeid注意事项: (1)typeid返回的是一个 type_info 对象的引用,而这个引用是与具体的变量类型有关的, 也就是说不同的变量类型都有一个 type_info 结构体。type_info结构体如下: class type_info{ public: const char* name() const; // 打印具体类型的方法 一般这样用 typeid(x1).name() bool operator==(const type_info& rhs) const; // 运算符重载 支持直接 typeid(x1) == typeid(x2) bool operator!=(const type_info& rhs) const; // 运算符重载 int before(const type_info& rhs) const; virtual ~type_info(); // 析构函数