【问题标题】:create object based on time in c++在 C++ 中基于时间创建对象
【发布时间】:2010-09-08 03:23:25
【问题描述】:

我正在编写关于汽车制造的模拟,我想知道如何根据时间创建对象..

我有一个基类 Vehicle,以及子类 Motorbike、Car 和 Truck。 每1小时生产1辆摩托车, 每 3 小时生产 1 辆汽车, 每 8 小时生产 1 辆卡车。

如何根据指定的时间创建这些对象?

谢谢

【问题讨论】:

  • 你指的是模拟时间?如果是这样,你是如何推动模拟的?您是否使用固定的时间增量、经过的实时时间N、...?
  • 我正在使用实时,但稍后我想加快时间,比如说程序中的 1 个月 = 10 分钟实时
  • 所有作品是否都以基本时间单位的固定倍数开始和结束(例如C * 1h)?还是在任意点?

标签: c++ oop time simulation


【解决方案1】:

一种可能性是有一个专门用于每个任务的线程,它只是位于起泡、冲洗、创建、睡眠、重复的循环中。

【讨论】:

    【解决方案2】:

    您可以创建计时器并等待这些计时器事件。 当计时器到期时,您可以创建相应的对象。 你可以在一个线程中监控它。

    你什么时候销毁这些物品?

    【讨论】:

    • 制造出来的车辆会经过一些工序然后被销毁
    【解决方案3】:

    如果您想完全控制时间(例如,您可以增加时间而不考虑系统计时器),那么您需要将其作为一个类来实现。然后提供一个 Singleton 或静态函数来返回当前时间。时间类应该是可复制的,以便对象可以记住开始时间。另外,提供时间提前一定量,时间比较的功能。

    在每个可制造对象(或者更好的是,制造它们的工厂)中,添加两个函数:

    1. StartManufacture。这个函数应该记住开始时间。
    2. CheckManufactureComplete。此函数获取当前时间,并检查自制造开始以来所需的等待时间是否已过。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-22
      • 2016-05-30
      相关资源
      最近更新 更多