더북(TheBook)

lock() 함수는 객체가 있으면 객체를 잠그고 새로운 shared_ptr<X> 객체를 반환해서 pNew를 초기화한다. 객체가 없으면 lock() 함수는 nullptr로 된 shared_ptr<X> 객체를 반환한다. lock() 함수 호출 결과는 if 문으로 테스트할 수 있다.

if(pNew)
   std::cout << "객체에 대한 공유 포인터가 생성되었습니다.\n";
else
   std::cout << "객체가 더 이상 존재하지 않습니다.\n";

weak_ptr<T> 포인터를 사용하는 건 이 책의 범위를 벗어나므로 더 깊이 있는 주제는 다루지 않을 것이다. 3장에서는 컨테이너에 스마트 포인터를 저장할 때의 장점과 의미를 살펴볼 것이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.