安全管理动态内存

C++Beginner
立即练习

介绍

在本次挑战中,你将为一家本地书店开发一个小型的库存管理系统。书店需要一种内存利用率高且不会产生内存泄漏风险的方式来追踪书籍详情。你将创建一个 Book 类,利用 unique_ptr 来动态管理书籍信息,实现一个包含书名、作者和出版年份参数的构造函数,并添加一个能够安全显示书籍详情的方法,以此来实践智能指针管理。

这是一个「挑战」项目,它与「引导实验」的不同之处在于,你需要尝试独立完成挑战任务,而不是按照实验步骤一步步学习。挑战通常具有一定的难度。如果你觉得困难,可以与 Labby 讨论或查看解决方案。历史数据显示,这是一个 初学者 级别的挑战,通过率为 100%。它在学习者中获得了 100% 的好评率。

安全管理动态内存

你正在为一家本地书店开发一个小型的库存管理系统。书店需要一种内存利用率高且不会产生内存泄漏风险的方式来追踪书籍详情。

任务

  • 创建一个 Book 类,使用 unique_ptr 动态管理书籍信息
  • 实现一个接收书名、作者和出版年份的构造函数
  • 添加一个使用智能指针管理并安全显示书籍信息的方法
  • 演示正确的内存分配和自动清理机制

要求

  • 使用 unique_ptr 管理书籍对象的内存
  • ~/project/book_tracker.cpp 中编写实现代码
  • 实现一个带有书名、作者和出版年份参数的构造函数
  • 包含一个 displayInfo() 方法来打印书籍详情
  • 确保在对象创建和销毁过程中不会发生内存泄漏

示例

编译并运行程序以显示书籍信息:

g++ book_tracker.cpp -o book_tracker
./book_tracker

示例输出:

Book Title: The Great Gatsby
Author: F. Scott Fitzgerald
Publication Year: 1925

提示

  • 使用 std::unique_ptr 进行自动内存管理
  • 记得在构造函数中初始化成员变量
  • 在转移独占指针的所有权时使用 std::move()
  • 实现安全访问并显示书籍信息的方法
✨ 查看解决方案并练习

总结

总而言之,本次挑战要求你创建一个 Book 类,通过 unique_ptr 动态管理书籍信息。你需要实现一个构造函数来初始化书籍详情(如书名、作者和出版年份),并添加一个安全显示书籍信息的方法。其核心目标是演示正确的内存分配与自动清理机制,确保在对象创建和销毁的整个生命周期内不会发生内存泄漏。