介绍
在本次挑战中,你将为一家本地书店开发一个小型的库存管理系统。书店需要一种内存利用率高且不会产生内存泄漏风险的方式来追踪书籍详情。你将创建一个 Book 类,利用 unique_ptr 来动态管理书籍信息,实现一个包含书名、作者和出版年份参数的构造函数,并添加一个能够安全显示书籍详情的方法,以此来实践智能指针管理。
安全管理动态内存
你正在为一家本地书店开发一个小型的库存管理系统。书店需要一种内存利用率高且不会产生内存泄漏风险的方式来追踪书籍详情。
任务
- 创建一个
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 动态管理书籍信息。你需要实现一个构造函数来初始化书籍详情(如书名、作者和出版年份),并添加一个安全显示书籍信息的方法。其核心目标是演示正确的内存分配与自动清理机制,确保在对象创建和销毁的整个生命周期内不会发生内存泄漏。



