對於某個對象的唯一標識,我可以用兩種方法創建計數器,但我不知道哪一個更好雖然它們在代碼中有很大不同不是字節碼,我不知道)。函數內的靜態變量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