동적 메모리의 안전한 관리

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를 활용하세요.
  • 생성자에서 멤버 변수를 초기화하는 것을 잊지 마세요.
  • 소유권을 이전해야 할 경우 std::move()를 사용하세요.
  • 도서 정보에 안전하게 접근하고 출력할 수 있는 메서드를 구현하세요.

요약

정리하자면, 이번 챌린지에서는 unique_ptr를 사용하여 도서 정보를 동적으로 관리하는 Book 클래스를 제작해 보았습니다. 제목, 저자, 출판 연도와 같은 도서 상세 정보를 초기화하는 생성자를 구현하고, 해당 정보를 안전하게 출력하는 메서드를 추가했습니다. 이 과정의 핵심 목표는 올바른 메모리 할당과 자동 자원 해제를 실천하여, 객체의 생성부터 소멸까지 메모리 누수가 발생하지 않도록 하는 것입니다.

✨ 솔루션 확인 및 연습