gpt4 book ai didi

c++ - 生成类唯一标识的有效方法?

转载 作者:可可西里 更新时间:2023-11-01 17:10:52 26 4
gpt4 key购买 nike

在 C++ 中是否有任何有效的方法来生成类唯一的 ID,而不是实例?我正在寻找这种简单程度的东西(这会为每个实例生成一个 ID,而不是为每个类类型生成一个 ID):

MyClass::MyClass()
{
static unsigned int i = 0;
id_ = i++;
}

编辑:为什么我想要唯一 ID。

我正在写游戏。我游戏中的所有实体都会有不同的状态(向左行走、跳跃、站立等);这些状态在类中定义。每个州都需要有自己的 ID,这样我才能识别它。

最佳答案

你可以试试这个,但它不是确定性的。

int id_count = 0;

template <typename T>
int get_id()
{
static int id = id_count++;
return id;
}

然后只需使用:

get_id<int>(); // etc.

当然,这不是线程安全的。

同样,它不是确定性的:ID 是在您第一次为每种类型调用函数时生成的。所以,如果你在一次运行中调用 get_id<int>()之前get_id<float>()然后在另一次运行中,您将它们反过来调用它们,然后它们将具有不同的 ID。但是,它们在单次运行中对于每种类型始终是唯一的。

关于c++ - 生成类唯一标识的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6365115/

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