从类名转换的C ++指针类型

时间:2013-09-22 22:56:01

标签: c++ pointers

如何使用String中的类名从C ++中转换指针?

伪码:

int * ptr = something;
myStruct ptrstruct = (ClassFromString("myStruct") ptr); 
// The class/struct name is passed in as String

谢谢

2 个答案:

答案 0 :(得分:0)

我不是c ++大师,但我有两个可能有助于头脑风暴的想法:

  • 使用此处所述的注册表模式可能会有所帮助:Instantiate class from name?
  • 其次,遵循注册表模式的想法,您可以创建一个用于转换的函数,例如: MyClass something = registry.cast("MyClass", ptr);

答案 1 :(得分:-1)

我不确定但这必须奏效 只有Void指针或增强可以帮助,如果它发生

thing * p = something; // pointer to object
void * pv = p;          // pointer to void
thing * p2 = static_cast<thing *>(pv); // pointer to the same object

也许同样的情况是从Threads返回值 在c ++中无法进行全面反射。 它只是鼓舞人心。