私のプロジェクトでは、次のようなシナリオがあります。
- 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) ; }
上記のコードでは、 の 2 行目dynamic _castは 0 を返しますが、dynamic_castが に変更されたstatic_cast場合、コードは期待どおりに機能します。ご意見をお聞かせください