有办法从保存类名的字符串中实例化对象吗?我有一份档案:base.hclass Base;class DerivedA : public Base;class DerivedB : public Base;/*etc...*/另一个文件:BaseFactory.h#include "Base.h"class BaseFactory{public:
BaseFactory(const string &sClassName){msClassName = sClassName;};
Base * Create()
{
if(msClassName == "DerivedA")
{
return new DerivedA();
}
else if(msClassName == "DerivedB")
{
return new DerivedB();
}
else if(/*etc...*/)
{
/*etc...*/
}
};private:
string msClassName;};/*etc.*/有没有办法以某种方式将这个字符串转换成一个实际的类型(类),这样BaseFactory就不必知道所有可能的派生类,并且每个类都有if()?我能用这个字符串生成一个类吗?我认为这可以通过反思在C#中实现。C+中有类似的东西吗?
- 3 回答
- 0 关注
- 403 浏览
添加回答
举报
0/150
提交
取消