動的メモリの安全な管理

C++Beginner
オンラインで実践に進む

はじめに

このチャレンジでは、地元の書店の小規模な在庫管理システムを開発します。書店は、メモリリークのリスクを冒さずに、メモリ効率の良い方法で本の詳細を追跡する仕組みを必要としています。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 クラスを作成しました。タイトル、著者、出版年などの詳細を初期化するコンストラクタを実装し、その情報を安全に表示するメソッドを追加しました。この課題の目的は、適切なメモリ割り当てと自動クリーンアップを実践し、オブジェクトのライフサイクル全体を通じてメモリリークが発生しないようにすることです。