是否可以在 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++ 代码(跨平台)。使用 boost 是允许的。