私は自分が抱えている問題を解決する方法を考えていましたが、それがうまくいくかどうかはわかりません。
Aという基本クラスと3つのサブクラスB、C、Dがあるとします。
A
^
-----------------
| | |
B C D
また、X、Y、Zの3つのクラスがあります。
私のシステムオブジェクトでは、タイプB、C、DがタイプAとして渡され、通常、タイプB、C、DのオブジェクトをオブジェクトX、Y、またはZのいずれかに変換する必要があります(キャストではないため、手動で変換します。完全に異なります)。
したがって、オブジェクトタイプAをタイプX、Y、またはZに変換するには、最初にサブタイプをチェックしてから、サブタイプに応じてAオブジェクトに関するいくつかの操作の結果を使用してX、Y、またはZオブジェクトを初期化する必要があります。
明示的なキャスト操作をAからX、Y、またはZにオーバーロードすることを考えましたが、それらを変換したときと同じプロセスを実行していましたが、それから考えました...ポリモーフィズムを使用して、Bからのキャストをオーバーロードすることは可能でしょうか? CとDは、AIの新しいサブタイプを追加するときに、Aのキャストコードを変更する必要がないという方法ですか?(新しいサブタイプに明示的なキャストオーバーロードを追加するだけです)
何か紛らわしいことがあれば申し訳ありませんが、きちんと説明していただければ幸いです。
注:X、Y、Zのキャストオーバーロードを追加します