迈克老狼

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 

通过运行时类型识别(RTTI), 我们能够使用基类的指针或引用来判定这些指针或引用实际指向对象的类型。这要求基类中至少要有一个虚函数。

判定的方法包括dynamic_casttypeid

 

     1、 dynamic_cast 动态转化

    它的格式为:dynamic_cast<T*>(basestr) dynamic<T&>(basetype)

basestr必须是0( 此时返回0)或指向对象的指针,如果basestr不是T类型的指针,则dynamic_cast结果为0,如果basetype不是T类型引用,则抛出异常。

 

2、 typeid使用

typeid(e) e是表达式类型名,如果e是含有虚函数的类型的指针或引用,则会对应其动态类型,否则对应静态类型。

下面是实例代码:

Code

 

posted on 2009-11-20 15:12  迈克老狼  阅读(233)  评论(0编辑  收藏  举报