如何在关闭并重新启动应用程序后仍阻止我的id? 所以我必须做一个C++赋值,我有以下的指令:

如何在关闭并重新启动应用程序后仍阻止我的id? 所以我必须做一个C++赋值,我有以下的指令:,c++,C++,在私有部分添加: int id; //contains an unique number to identify this object; //this number may not be used again! 要启用此功能,请执行以下操作: 向类中添加静态私有变量,以便跟踪 到目前为止创建的对象数 添加一个静态公共函数以获取此编号 注意:关闭并重新启动应用程序后,使用的id号仍应被阻止 我不太了解这项任务,也不知道如何实施。你能帮我做这个吗 我能为你做点事。如果您有任何问

在私有部分添加:

int id; //contains an unique number to identify this object;
        //this number may not be used again!
要启用此功能,请执行以下操作:

  • 向类中添加静态私有变量,以便跟踪 到目前为止创建的对象数

  • 添加一个静态公共函数以获取此编号
  • 注意:关闭并重新启动应用程序后,使用的id号仍应被阻止


    我不太了解这项任务,也不知道如何实施。你能帮我做这个吗

    我能为你做点事。如果您有任何问题,请在评论中告诉我。这是我的密码:

    #包括
    #包括
    #包括
    #包括
    #包括
    #包括
    const char*DATAFILE_NAME=“data.dat”;
    类对象
    {
    公众:
    使用id_t=int;
    私人:
    静态constexpr id_t MAX_id=std::numeric_limits::MAX();
    创建的静态id_t对象;
    静态标准::无序的\u集合使用\u ID;
    身份证;
    //Inits静态变量(本质上是一个加载函数)
    静态void static_init()
    {
    std::ifstream静态变量;
    静态变量打开(数据文件名称);
    if(静态变量为开()
    {//此程序以前运行过,请加载它
    标识线;
    //将文件的每一行读入已使用的\u ID(每行1个ID)
    while(静态变量>>行)
    {
    使用的标识插入(行);
    }
    //现在,used_id的大小将是创建的对象数
    objs_created=used_id.size();
    //关闭文件
    静态变量关闭();
    }
    其他的
    {//文件不存在或已损坏
    std::流mkFile;
    mkFile.open(DATAFILE_NAME);//生成文件
    mkFile.close();
    //初始化静态变量
    //无序_集不需要初始化
    objs_created=0;
    }
    }
    公众:
    对象()
    {
    if(已使用\u id.empty())
    {
    对象::static_init();
    }
    id_t rand_num=0;
    std::默认随机引擎随机生成器(std::时间(nullptr));
    //随机数[0]的可能范围(无符号长的最大值)]
    标准:统一分布号范围(0,最大ID);
    反复设置一个随机数,直到在“used_id”中找不到为止
    {
    rand\u num=编号范围(rand\u生成器);
    }while(used_id.find(rand_num)!=used_id.end());
    //将m_id设置为随机数
    m_id=rand_num;
    //更新静态变量
    使用的标识。插入(m标识);
    objs_创建++;
    }
    //保存可以调用的函数
    静态void save()常量
    {
    std::流存储数据;
    saveData.open(数据文件名称);
    if(saveData.is_open())
    {
    //将每个id保存在自己的行中
    用于(常量自动和id:已使用的id)
    {
    
    saveData将其写入文件,并在启动程序时再次读取。我所做的是拥有私有静态nrOfObjects和公共静态getNrOfObjects,但它们仅在创建对象时计算,而不是真正分配唯一id。我是否还必须拥有单独的私有id,或者我创建的私有静态nrOfObjects才是实际的id?请指定作业的哪些部分有问题。如何在程序重新启动时使其持久化?如何在程序中实现唯一id?其他问题?请一次只关注一个主题,否则这个问题太广泛,可能会被关闭。请阅读,以及。请记住,您应该“总是可以向你的老师寻求帮助和澄清!”某个程序员说,“我不认为这个问题太模糊了。”他给出了一份他/她的作业的项目清单,并说他们在整个作业中遇到了问题。这意味着他们在提到的所有要点上都有问题。@DrakeJohnson每个问题一个问题。如何在程序内部处理唯一id是一个问题,应该在一个问题中提出,并且如何持久化唯一id是另一个问题,应该在单独的问题中提出。此外,还不清楚OP实际上在问什么问题(如何在程序内部处理它,或者如何持久化,或者两者都要问).Code只回答不幸的问题,这是不好的。@Someprogrammerdude代码中有很多注释。Cargo cult通常是人们不理解他们在程序中放了什么。不过,我理解你的担心,我愿意接受关于如何使我的答案更清楚的建议。