2013-09-22 109 views
0

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

伪代码:

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

谢谢

+1

现在还不清楚;你想要这个代码做什么? –

+8

我不认为C++直接支持这种反射。 –

+0

也许您正在寻找“Class Factory”设计模式。这可以用C++很容易地实现,但不是语言功能。 – paddy

回答

0

我不是一个C++大师,但我有两个想法,可能与头脑风暴帮助:

  • 可以使用注册表模式如下描述将有所帮助:Instantiate class from name?
  • 其次,以下注册表模式的想法,你可以创造一个功能铸造例如MyClass something = registry.cast("MyClass", ptr);
-1

我不知道,但这个必须努力 只有空指针或升压可以帮助,如果它发生

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

也许同一种情况是从线程返回值 整体反射在C++中是不可能的。它只是brainstroming。

+0

这看起来几乎完全与OP所要求的无关。 – us2012

+0

我看到你在这里做了什么,但我不认为你理解了这个问题 - 部分原因是我的错误措辞。但作为例子:像这样的东西* p2 = static_cast <"thing *">(pv);'你看到我在那里做了什么?这是我想要得到的效果。 – bluejamesbond