例を挙げて、static_cast よりも dynamic_cast を使用する必要がある場合、または使用する必要がある場合を知りたいです。この SO questionを読みましたが、具体的な例は実際には提供されていません。私は、ほとんどの例にポリモーフィックなクラス型が含まれていると想定しています。現在、 static_cast よりも dynamic_cast を使用することを知っている唯一の理由は、使用している具体的な型を 100% 確信していない場合です。
その他の考え:
- 横向きのキャスト (多重継承)
- 仮想継承階層の基本クラスへのキャスト
- 多重継承を使用するクラスで「最も右側」の継承された型にキャストすると、ポインターは変更されますか (static_cast を使用する場合)。
「タイプがわからない場合」の理由は唯一の理由ですか?そうでない場合、誰かが static_cast よりも dynamic_cast を使用する必要がある、または使用する必要がある理由を示す例を提供できますか?