如何在C++中使用类名在String中转换指针?C++指针类型从类名转换
伪代码:
int * ptr = something;
myStruct ptrstruct = (ClassFromString("myStruct") ptr);
// The class/struct name is passed in as String
谢谢
如何在C++中使用类名在String中转换指针?C++指针类型从类名转换
伪代码:
int * ptr = something;
myStruct ptrstruct = (ClassFromString("myStruct") ptr);
// The class/struct name is passed in as String
谢谢
我不是一个C++大师,但我有两个想法,可能与头脑风暴帮助:
MyClass something = registry.cast("MyClass", ptr);
我不知道,但这个必须努力 只有空指针或升压可以帮助,如果它发生
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。
这看起来几乎完全与OP所要求的无关。 – us2012
我看到你在这里做了什么,但我不认为你理解了这个问题 - 部分原因是我的错误措辞。但作为例子:像这样的东西* p2 = static_cast <"thing *">(pv);'你看到我在那里做了什么?这是我想要得到的效果。 – bluejamesbond
现在还不清楚;你想要这个代码做什么? –
我不认为C++直接支持这种反射。 –
也许您正在寻找“Class Factory”设计模式。这可以用C++很容易地实现,但不是语言功能。 – paddy