在b站C++黑马视频中的结构体案例,出现的下图中的nameSeed的作用是什么?
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变量的访问。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥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制图