私のプロジェクトでは、次のようなシナリオがあります。
- 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
場合、コードは期待どおりに機能します。ご意見をお聞かせください