如何在C ++中生成自动ID?

时间:2019-05-14 10:36:25

标签: c++ class oop

我有一堂课,我想让id自动生成;

    class Id{
    private:
    int id;
    Automat automat;
    }

和班级

     class Array
    {
      Id* arr;//Every object to have a unique integer id;
      int number_of_elements;
      int capacity;
    }

2 个答案:

答案 0 :(得分:4)

您必须使用static成员来计数对象:

class Id
{
    public:
        Id()
        {
            id = unique_id++;
        }

    int get_id()
    {
        return id;
    }

    private:
        int id;
        static int unique_id;
}

初始化源文件中的静态成员:

static int Id::unique_id = 0;

创建对象:

Id id1;        // id1.get_id() will return 1
Id id2;        // id2.get_id() will return 2
Id id3;        // id3.get_id() will return 3

注意: 这是一个简单的示例,但是您可以对其进行改进并为更好的处理添加条件。

答案 1 :(得分:1)

您应该添加一个调用<random>的构造函数。然后,Array类应检查匹配的id并将其替换为新对象。