이게 난이도 6 인가, : ) 한 8쯤 되는줄 알았는데, 더 정진해야겠다. 이번 항목을 클래스안에서 적용 될 것을 계산하여 스마트 포인터를 만들어 보는 항목이다. 알다 시피 클래스 안에서 스마트 포인터를 사용 할 때는 다음 4가지 경우를 반드시 생각해 봐야 한다.
첫째, 클래스의 생성자에서 어떻게 작동 하게 할 것인가?
둘째, 클래스의 소멸자에서 어떻게 작동 하게 할 것인가?
셋째, 클래스의 복사 생성자에서 어떻게 작동 하게 할 것인가?
넷째, 클래스의 복사 할당자에서 어떻게 작동 하게 할 것인가?
이번 항목은 이렇게 질문 4개에 대한 답변들로 이루어 졌다. 일전에 babo_ptr을 제작해보았던 터라 이 문제에 대해서 생각하여, 그 대처 방안으로 썼었는데, 다시 정리 하려 하니 귀찮다. 왜냐하면 결론을 보았기 때문이다.
바로 boost::smart_ptr을 사용 한다.
이것은 C++ 0x 표준안에 통과되었고, 완전한 표준으로 굳혀졌다.
총평
한번쯤 생각해 볼만한 주제이니, 한번 smart_ptr을 직접 만들어 보면서 하는게 좋을 듯 싶다.
'책 정리 > More Exceptional C++' 카테고리의 다른 글
항목 28 : 다형성 제어하기 ( 난이도 : 3 ) (0) | 2008.12.16 |
---|---|
항목 27 : (비)순수 가상 함수 ( 난이도 : 7 ) (0) | 2008.12.16 |
항목 26 : 다중 상속과 샴 쌍둥이 문제 ( 난이도 : 4 ) (0) | 2008.12.16 |
항목 25 : 다중 상속 에뮬레이션 ( 난이도 : 5 ) (0) | 2008.12.16 |
항목 24 : 왜 다중 상속을? ( 난이도 : 6 ) (0) | 2008.12.16 |
항목 30 : 스마트 포인터 멤버 Part 1 : auto_ptr로 인해 생길 수 있는 문제 ( 난이도 : 5 ) (0) | 2008.12.14 |
항목 29 : auto_ptr 사용 하기 (난이도 : 5) (0) | 2008.12.14 |
항목 35 : #define (난이도 : 4) (0) | 2008.12.13 |
항목 34 : 전처리 매크로 ( 난이도 : 4 ) (0) | 2008.12.13 |
항목 33 : 네스티드 함수 시뮬레이션 (nested function) ( 난이도 : 5 ) (0) | 2008.12.13 |
최근댓글