RTTI
Run-Time Type Identification
作用:
在运行时获取指针所指到或参考到的对象型态。
说明:
某些编译器默认禁止RTTI,目的是消除性能上的开销。
面向对象更提倡使用虚函数而不是RTTI机制。
C++通过typeid, dynamic_cast, type_info来支持RTTI :
typeid 操作符指出指针或引用对象的实际派生类型,返回type_info类型
1 class type_info { 2 private: 3 type_info(const type_info &); 4 type_info & operator=(const type_info &); 5 public: 6 virtual ~type_info(); 7 int operator==(const type_info &) const; 8 int operator!=(const type_info &) const; 9 const char * name() const; 10 };
dynamic_cast 把指向基类的左值转换为派生类的引用
浙公网安备 33010602011771号