gpt4 book ai didi

c++ - 如何获取 void* 指针的类型标识?

转载 作者:可可西里 更新时间:2023-11-01 16:30:28 25 4
gpt4 key购买 nike

我有一个指向对象的指针列表。这些对象没有任何共同点(即没有共同的基类);为了更好地理解:它是 GUI 中鼠标光标下的对象列表。

现在我想知道它是什么样的对象。节点、节点句柄、线段、标记等。但是我不能使用 typeid(*ptr),因为 ptr 是一个 const void*

有什么解决办法吗?因为我知道指针总是指向对象而不是单纯的值,所以我可以强制使用 typeid 吗?还是没有办法绕过添加一些伪造的公共(public)基类?

(编辑:目前我正在这样做,我在列表中存储一个结构,该结构另外存储对象的类型(作为枚举)。也许我应该更改它以存储 type_info 对象 ...)

最佳答案

对于技术解决方案,不考虑设计级别,使用 std::map 或哈希表(无论什么)将非类型化指针与类型描述符或类型化指针相关联,当然是在用户开始之前使用鼠标。

在更高的层次上,void* 指针是不好的。

最好修复设计,而不是使用像 std::map 这样的拼凑。

干杯。

关于c++ - 如何获取 void* 指针的类型标识?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6572191/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com