책 정리/More Exceptional C++
항목 31 : 스마트 포인터 멤버 Part 2 : ValuePtr을 향해 ( 난이도 : 6 )
최익필
2008. 12. 14. 19:53
이게 난이도 6 인가, : ) 한 8쯤 되는줄 알았는데, 더 정진해야겠다. 이번 항목을 클래스안에서 적용 될 것을 계산하여 스마트 포인터를 만들어 보는 항목이다. 알다 시피 클래스 안에서 스마트 포인터를 사용 할 때는 다음 4가지 경우를 반드시 생각해 봐야 한다.
첫째, 클래스의 생성자에서 어떻게 작동 하게 할 것인가?
둘째, 클래스의 소멸자에서 어떻게 작동 하게 할 것인가?
셋째, 클래스의 복사 생성자에서 어떻게 작동 하게 할 것인가?
넷째, 클래스의 복사 할당자에서 어떻게 작동 하게 할 것인가?
이번 항목은 이렇게 질문 4개에 대한 답변들로 이루어 졌다. 일전에 babo_ptr을 제작해보았던 터라 이 문제에 대해서 생각하여, 그 대처 방안으로 썼었는데, 다시 정리 하려 하니 귀찮다. 왜냐하면 결론을 보았기 때문이다.
바로 boost::smart_ptr을 사용 한다.
이것은 C++ 0x 표준안에 통과되었고, 완전한 표준으로 굳혀졌다.
총평
한번쯤 생각해 볼만한 주제이니, 한번 smart_ptr을 직접 만들어 보면서 하는게 좋을 듯 싶다.