amy_r 2023-05-25 21:17 采纳率: 100%
浏览 15
已结题

在b站C++黑马视频中的结构体案例,出现的下图中的nameSeed的作用是什么

在b站C++黑马视频中的结构体案例,出现的下图中的nameSeed的作用是什么?

img

  • 写回答

1条回答 默认 最新

  • 瞬间动力 2023-05-26 00:31
    关注

    在这个C++黑马视频中,nameSeed是一个静态变量,用来记录当前创建的Person对象的个数,其作用是为每个Person对象生成一个独一无二的名字。其中,nameSeed是在Person类中定义的,因此是属于类的静态变量,而不是属于对象的成员变量。

    在该视频中,Person类中的构造函数的定义如下:

    Person(string name, int age) {
        m_Name = name;
        m_Age = age;
        m_Id = ++s_NameSeed; // 为对象生成唯一ID
    }
    

    可以看出,在每个Person对象创建的时候,都会自动调用这个构造函数,并将m_Id成员变量设置为当前的nameSeed的值,以确保每个对象拥有一个唯一的ID。而在构造函数中,使用了“++s_NameSeed”语句来实现对nameSeed的自增操作,以保证下一个对象的ID是唯一的。

    需要注意的是,这种实现方式虽然可以为每个对象生成唯一的ID,但是在多线程的情况下可能会存在线程安全问题,因此需要在多线程的场景下采用线程安全的方案,比如使用互斥锁来控制对nameSeed变量的访问。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月9日
  • 已采纳回答 6月1日
  • 创建了问题 5月25日

悬赏问题

  • ¥15 压力传感器控制led
  • ¥15 matlab使用报错
  • ¥15 如何用BL55072驱动屏幕
  • ¥100 网页利用NC文件数据生成云图
  • ¥15 vivo手机的101root检测通常包括Bootloader状态检测吗,有没有懂的人来回答下?
  • ¥15 c++ 单例模式 在不项目之间的引用问题
  • ¥15 我想在微信名中用上红桃♥️这个表情 可是保存不了 说是有特殊符号或者不支持的语言 需要怎么做呢
  • ¥15 oracle报skip not validate connection
  • ¥15 请问左奇异向量怎么求解呢?
  • ¥15 Arcgis pro制图