はじめに
このチャレンジでは、地元の書店の小規模な在庫管理システムを開発します。書店は、メモリリークのリスクを冒さずに、メモリ効率の良い方法で本の詳細を追跡する仕組みを必要としています。unique_ptr(所有権独占型スマートポインタ)を使用して本の情報を動的に管理する Book クラスを作成し、タイトル、著者、出版年を引数に取るコンストラクタを実装します。また、スマートポインタの管理下で本の詳細を安全に表示するメソッドを追加します。
動的メモリの安全な管理
地元の書店の小規模な在庫管理システムを開発しています。書店は、メモリリークのリスクを回避しながら、メモリ効率よく本の詳細を追跡する方法を求めています。
タスク
unique_ptrを使用して本の情報を動的に管理するBookクラスを作成する- 本のタイトル、著者、出版年を受け取るコンストラクタを実装する
- スマートポインタ管理を利用して、本の情報を安全に表示するメソッドを追加する
- 適切なメモリ割り当てと自動クリーンアップを実証する
要件
- 本オブジェクトのメモリ管理には
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を使用してください - コンストラクタでメンバ変数を初期化することを忘れないでください
unique_ptrの所有権を移譲する場合はstd::move()を使用します- 本の情報に安全にアクセスして表示するためのメソッドを実装してください
まとめ
まとめると、このチャレンジでは unique_ptr を使用して本の情報を動的に管理する Book クラスを作成しました。タイトル、著者、出版年などの詳細を初期化するコンストラクタを実装し、その情報を安全に表示するメソッドを追加しました。この課題の目的は、適切なメモリ割り当てと自動クリーンアップを実践し、オブジェクトのライフサイクル全体を通じてメモリリークが発生しないようにすることです。



