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 把指向基类的左值转换为派生类的引用

 

你可能感兴趣的:(RTTI)