gpt4 book ai didi

c++ - 如何确保 const int 在 C++ 中具有唯一值

转载 作者:行者123 更新时间:2023-11-30 02:51:38 25 4
gpt4 key购买 nike

我有某种容器,对象可以用它来存储它们的一些数据。每个存储的对象都应该有它的 id,例如。 MY_GL_CONTEXT、FUNNY_CONF_OBJECT 等。我想存储这些分布在将使用它们的对象中的标识符。示例:类 Model 的对象希望使用 ID MY_GL_CONTEXT 在那里存储数据。

我想知道,我应该为这些 id 使用什么样的类型以避免类之间的冲突。如果我使用 static const int 那么可能会发生,Object::MY_GL_CONTEXT 将具有与 Something::FUNNY_CONF_OBJECT 相同的 int 值,因此它们在使用我的容器时会发生冲突。

谢谢。

最佳答案

在 C++ 中,有一些独特的东西。

每个对象都有一个唯一的地址。转换为void*,可以比较是否相等。不同的对象有不同的地址,所以这就是一个可用的 id。

每个多态类型都有自己的运行时类型信息,可通过 typeid 获得。这是通过 std::type_info::before 排序的。

由于单独编译,几乎不可能保证 const int 值是唯一的。事实上,由于分开编译,两个.cpp 文件可以同时编译。一个编译器如何知道另一个编译器将选择什么 int 值?

关于c++ - 如何确保 const int 在 C++ 中具有唯一值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19586412/

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