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

标签 c++ class singleton unique-id

我有一堆 C++ 类。

我希望每个类(class)都有这样的东西:

static int unique_id;

同一个类的所有实例都应该有相同的unique_id;不同的类应该有不同的 unique_id。

执行此操作的最简单方法似乎是通过类线程化单例。

但是,我不知道什么时候调用静态类成员/发生在 main 之前的事情。

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

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

int unique_id(); 

那也很好。

谢谢!

最佳答案

有一个在每次创建时递增其 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();
    }
};

关于c++ - C++中,如何使用单例来保证每个类都有唯一的整数ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2172879/

相关文章:

c# - 我应该在单例上实现 IDisposable 吗?

java - OCaml 中的经典单例实现

c++ - 使用编辑 QVector

C++ 嵌套 for 循环删除元素

c++ - 用字符串中的修改版本替换字符

javascript - 将 React 函数转换为 React 类

class - 可以将 boost::program_options 与自己的模板类一起使用吗?

c++ - 如何为 C++ 函数中的结构分配默认值?

r - getMethod ("summary"中的错误,签名 = "FitDiff")

javascript - 有什么方法可以防止在单例实例中覆盖/覆盖函数/变量?