可能性の重複:C++で
Is there a way to instantiate objects from a string holding their class name?名前だけを知っているオブジェクトをどのようにインスタンス化できますか?
、私は、ユーザーが実行時に作成されるオブジェクトタイプの名前を入力したい、そして、私が得る文字列に応じて、それらから、プログラムは正しいオブジェクトをインスタンス化します(要するに、私はファクトリメソッドパターンを実装しています)。ただし、プログラムが新しいオブジェクト型をサポートする必要がある場合、既存のコードを変更することはできません。
したがって、if ... else if ... else if ... stuffをメソッドから削除しても、自分のプログラムが特定の製品タイプの正しいオブジェクトをインスタンス化するようにすることができます(多くのうち、コンパイル時にのみ知られています)?
私の周りを検索すると私にこのリンクがあります:Is there a way to instantiate objects from a string holding their class name?それは私が望むものだと思われますが、コードを全く理解できません。
本当にありがとうございます。
@CharlesB反射は必要ありません。工場を使うことができます。 –
@LuchianGrigore:ファクトリはデザインパターンです。リフレクションは言語機能です。 if..else..elseなしで動作するファクトリが必要な場合は、リフレクションを持つ言語、またはAlessandroの答えのようなバイナリ・プラグイン・アーキテクチャが必要です – CharlesB