在我的项目我有一个假设一个场景:的dynamic_cast <>失败,但的static_cast <>工作
- 1)BaseClass的是从父类IFlow
- 2)ChildClass提炼出来的派生的接口即,从基类
3)在childClass Init函数我使用
dynamic_cast
到IFlow的客体投射到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) ; }
在上面的代码中,dynamic _cast
的第二行返回0,但如果dynamic_cast
更改为static_cast
,那么代码将按预期工作。 请指教