C ++从两个类中确定void *的类型

时间:2018-05-21 09:51:23

标签: c++ types casting

我使用wxWidgets,我的地图编辑器中有一个搜索功能用于我的在线游戏。

我搜索不同条件的对象,并按名称将这些对象放在ComboBox列表中,并将对象添加为参考数据(build.gradle),

我有一个事件void*我想标记并跳转到有效的对象,但是当在对象类型之间切换时它会崩溃我的应用程序,因为我似乎无法" onClickResult&#34 ;确定没有关系的类对象(没有子类,两个没有任何关系的独立类)。

问题:有没有办法确定reinterpret_castvoid*正在返回event.GetClientData())中的数据类型并正确投放?

void*

谢谢!

2 个答案:

答案 0 :(得分:5)

没有可行的方法在C ++中这样做。

一旦你转向void*const void*,你就告诉编译器你要自己跟踪这个类型。

这里的一个解决方案是拥有一个基类,所有对象都从该基类继承,并将void*强制转换为该类型。从那里,定期的多态性可以接管。

答案 1 :(得分:1)

不要将对象本身添加为void*客户端数据,而是指向具有足够成员来查找对象的结构的指针。例如,容纳对象的容器的一些标识符和容器的索引。