对于某个对象的唯一标识,我可以用两种方法创建计数器,但我不知道哪一个更好虽然它们在代码中有很大不同不是字节码,我不知道)。函数内的静态变量vs C++中的静态类变量
第一种方法是将有它使用一个静态变量一些功能:
部首:
unsigned int GetNextID();
CPP:
unsigned int GetNextID()
{
static unsigned id{0};
return id++;
}
另一个选项:
部首:
class UniqueIdGenerator
{
public:
static unsigned int GetNextID();
private:
static unsigned int mID;
}
CPP:
unsigned int UniqueIdGenerator::mID = 1;
unsigned int UniqueIdGenerator::GetNextID()
{
return ++mID;
}
仅供参考,我已经read前者不是线程安全的,但我不明白为什么后者将是要么。如果有的话,我更喜欢简单的功能,因为它更简单,更简单&。
FWIW,你说得对。这两个实现都不是线程安全的。 –
只是为了让它更清楚,因为人们关注线程安全(如果我的问题很模糊,我很抱歉):我在问为什么两种方法都会更好。如果他们只是线程不安全,那么线程安全不应该进入讨论。 – ikku100