You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++开发流媒体服务时输出电影评分显示巨大随机数

C++ movie类评分输出随机数问题排查

核心问题

你实现的带参构造函数movie(int, std::string, int, std::string, int)仅通过初始化列表完成了父类video的属性赋值,没有将传入的_rating参数赋值给类自身的rating成员变量。
int属于C++基础数据类型,若未显式初始化,会读取对应内存位置残留的随机值,这就是你看到输出无意义巨大数字的直接原因。

修复方案

修改带参构造函数,在初始化列表中补充rating成员的赋值即可,修复后的构造函数代码如下:

movie::movie(int _id, std::string _name, int _length, std::string 
_genre, int _rating) : video(_id, _name, _length, _genre), rating(_rating){}

如果习惯在构造函数体内赋值,也可以用如下写法,效果一致:

movie::movie(int _id, std::string _name, int _length, std::string 
_genre, int _rating) : video(_id, _name, _length, _genre){
    rating = _rating;
}

可选优化建议

  • 你声明的getRating()方法返回值类型为float,但rating成员是int类型,如果后续需要支持小数评分,记得同步调整成员变量类型,当前整数评分场景下不会触发运行错误。
  • 遍历电影数组的循环条件i <= 4在当前数组长度为5时可正常运行,更通用的写法建议改为i < 5,后续调整数组长度时更不容易出现越界问题。

内容的提问来源于stack exchange,提问作者Luis Garza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 02:54:20