Как создать автоматический идентификатор в C ++? - PullRequest
0 голосов
/ 14 мая 2019

У меня есть класс, в котором я хочу, чтобы идентификатор генерировался автоматически;

    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 ]

4 голосов
/ 14 мая 2019

Вы должны использовать член 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 голос
/ 14 мая 2019

Вы должны добавить конструктор, который вызывает <random>.Затем класс Array должен проверить соответствие идентификаторов и заменить их новыми объектами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...