热门

最新

红包

立Flag

投票

同城

我的

发布
2503_91057718
编程攻城狮
3 天前
true2503_91057718

健身房的 “移动语义” 能量转移术
老顾的健身房用程序管理会员的 “私教课时”,有个Lesson类记录课时数据。以前转让功课时,用Lesson newLesson = oldLesson会复制一份数据 —— 就像把课时从老会员卡里 “复印” 到新卡,老卡的课时还在,结果两人都能用,系统总对账出错。
后来他学了 C++ 的移动语义(Move Semantics),给Lesson类加了移动构造函数:
cpp
运行
Lesson(Lesson&& other) {
// 直接"抢"走other的课时数据
hours = other.hours;
other.hours = 0; // 原对象数据清空
}
现在转让课时用Lesson newLesson = std::move(oldLesson),就像把课时从老卡 “转移” 到新卡,老卡的课时会清零 —— 既不用复制数据(省内存),又保证了一课一用。
“移动语义就是会员间的能量转移,” 老顾看着系统记录说,“不是复制一份,而是彻底转交,再也不会出现课时重复使用的问题!”

CSDN App 扫码分享
分享
评论
点赞
打赏
  • 复制链接
  • 举报
下一条动态
立即登录