카테고리 없음

[Effective C++] Item17_new로 생성한 객체를 스마트 포인터에 저장하는 코드는 별도의 한 문장으로 만들자

해달 2018. 1. 31. 22:45

Item17_new로 생성한 객체를 스마트 포인터에 저장하는 코드는 별도의 한 문장으로 만들자

챕터 핵심 내용

  • new로 생성한 객체를 스마트 포인터로 넣는 코드는 별도의 한 문장으로 만들자. 이것이 안 되어 있다면, 예외가 발생될 때 디버깅하기 힘든 자원 누출이 초래될 수 있다.

- new로 생성한 객체를 스마트 포인터로 넣는 코드는 별도의 한 문장으로 만들자. 이것이 안 되어 있다면, 예외가 발생될 때 디버깅하기 힘든 자원 누출이 초래될 수 있다.

  • tr1::shared_ptr의 생성자는 명시적으로 선언되야 한다.
  • 함수 호출에 필요한 연산을 만들어 내는 코드는 실행되는 순서가 컴파일러 제작사마다 다르다.

후기(postscript)

C++11부터는 tr1에 있던 shared_ptr이 표준으로 들어왔다. 또한 위에 해당하는 함수도 <memory> 헤더에 std::make_shared 함수로 존재한다.