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

 

posted on 2014-04-25 23:14  aoun  阅读(334)  评论(2)    收藏  举报