小编use*_*421的帖子

dynamic_cast <>失败但static_cast <>有效

在我的项目中,我有一个假设的场景:

  • 1)BaseClass是从父类IFlow派生的接口
  • 2)ChildClass派生自它,即从Base类派生
  • 3)在childClass Init函数中,我dynamic_cast用来将IFlow的objet转换为BaseClass,如下所示:

    void ChildClass::init()
    {    
        IFlow* pFlow = someMethod(); //it returns the IFlow object pointer
    
        //this works for static cast but fails for dynamic cast    
        BaseClass *base =  dynamic_cast<BaseClass*>(pFlow) ;
    } 
    
    Run Code Online (Sandbox Code Playgroud)

在上面的代码中,第二行dynamic _cast返回零,但如果dynamic_cast更改为static_cast则代码按预期工作.请指教

c++ dynamic-cast

4
推荐指数
1
解决办法
2841
查看次数

标签 统计

c++ ×1

dynamic-cast ×1