C でのオブジェクト型の決定
オブジェクト指向プログラミングでは、多くの場合、実行時にオブジェクトの型を決定する必要があります。これは、特に相続の場合には困難になる可能性があります。基本クラス A と、型 A のオブジェクトを受け入れる関数をオーバーライドする派生クラス B があるシナリオを考えてみましょう。B に固有の関数が B オブジェクトでのみ呼び出されるようにするには、型を区別することが重要になります。
これに対して推奨されるアプローチは、動的キャストです。動的キャストは、オブジェクトを特定の型にキャストできるようにする実行時の型チェック メカニズムです。これには 2 つのバリアントがあります:
dynamic_cast の方法動作:
動的キャストは、型 object のオブジェクトを指定された型 TYPE に安全にキャストできるかどうかをチェックします。キャストが有効な場合、null 以外のポインター (ポインター キャストの場合) または参照 (参照キャストの場合) が返されます。それ以外の場合は、それぞれ NULL を返すか、bad_cast 例外をスローします。
重要な考慮事項:
以上がC でダイナミック キャストを使用して実行時にオブジェクト タイプを決定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。