可能重复:
C++ 中的最小反射
基本上我有类名存储在char *
,我如何创建该类的实例。以下是我的想法。当我Test
作为模板参数传递时它可以工作,这很好,但如果我尝试这样的事情Test *t = CreateType<ptr>
,它将无法工作。
有什么办法可以使这项工作。
class Test{
public:
Test() {
}
~Test() {
}
};
template <typename T>
T* CreateType() {
return new T;
}
int main ( int argc, char **argv) {
char *ptr = "Test";
Test *T = CreateType<Test>();
return 0;
}