c++で渡された型名(文字列)を使用してオブジェクトの見本を返すことは可能ですか? 基本抽象クラスBase
といくつかの派生クラスがあります。コード例:
class Base
{
/* ... */
};
class Der1 : public Base
{
/* ... */
};
class Der2 : public Base
{
/* ... */
};
そして、次のような関数が必要です:
Base *objectByType(const std::string &name);
name
派生クラスの数は変更可能であり、新しいオブジェクト型を手動で切り替えて返すようなことはしたくありません。とにかくC ++でそれを自動的に行うことは可能ですか?
ps の使用法は次のようになります。
dynamic_cast<Der1>(objectByType("Der1"));
純粋な C++ コード (クロスプラットフォーム) が必要です。ブーストの使用は許容されます。