在C++中,如何使用单例来确保每个类都有唯一的整数ID?

ano*_*non 4 c++ singleton class unique-id

我有一堆C++类.

我希望每个班级都有类似的东西:

static int unique_id;
Run Code Online (Sandbox Code Playgroud)

同一个类的所有实例应该具有相同的unique_id; 不同的类应该有不同的unique_id.

最简单的方法似乎是通过类线程化单例.

但是,我不知道什么时候静态类成员/事件发生在main之前.

(1)如果你有一个不涉及使用单身人士的解决方案,那也没关系

(2)如果你有一个解决方案给我一个:

int unique_id(); 
Run Code Online (Sandbox Code Playgroud)

那很好.

谢谢!

Kor*_*icz 9

有一个类在每次创建时增加它的ID.然后将该类用作应该具有ID的每个对象中的静态字段.

class ID
{
    int id;
public:
    ID() {
        static int counter = 0;
        id = counter++;
    }

    int get_id() {  return id; }
};

class MyClass
{
    static ID id;
public:
    static int get_id() 
    {
        return id.get_id();
    }
};
Run Code Online (Sandbox Code Playgroud)

  • @anon,如果你不理解解决方案,请不要downvote,要求澄清. (2认同)