在我的项目中,我有一个假设:
- 1) BaseClass 是从父类 IFlow 派生的接口
- 2) ChildClass 派生自它,即从 Base 类
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
返回零,但如果dynamic_cast
更改为,static_cast
则代码按预期工作。请指教