создать объект на основе времени в C ++ - PullRequest
2 голосов
/ 08 сентября 2010

Я пишу симуляцию о производстве транспортных средств, мне интересно, как я могу создавать объекты, основанные на времени.

У меня есть базовый класс Транспортное средство и дети Мотоцикл, Автомобиль и Грузовик.1 мотоцикл будет производиться каждые 1 час, 1 автомобиль будет производиться каждые 3 часа, и 1 грузовик будет производиться каждые 8 ​​часов.

как я могу создать эти объекты в указанное время?

спасибо

Ответы [ 3 ]

1 голос
/ 08 сентября 2010

Вы можете создавать таймеры и ждать этих событий таймера. Когда таймер истекает, вы можете создать соответствующий объект. Вы можете следить за этим в потоке.

Когда вы будете уничтожать эти объекты?

1 голос
/ 08 сентября 2010

Одна возможность состоит в том, чтобы иметь поток, выделенный для каждой задачи, который просто находится в цикле пена, полоскание, создание, сон, повтор.

0 голосов
/ 08 сентября 2010

Если вы хотите иметь полный контроль над временем (скажем, вы можете увеличивать время независимо от системного таймера), то вам нужно реализовать это как класс. Затем предоставьте функцию Singleton или статическую функцию для возврата текущего времени. Класс времени должен быть копируемым, чтобы объекты могли помнить время начала. Также предоставьте функцию для опережения времени на определенную величину и для сравнения времени.

Внутри каждого производимого объекта (или, лучше, фабрики, которые его производят), добавьте две функции:

  1. StartManufacture. Эта функция должна помнить время начала.
  2. CheckManufactureComplete. Эта функция извлекает текущее время и проверяет, истекло ли необходимое время ожидания с начала производства.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...