이게 난이도 6 인가, : ) 한 8쯤 되는줄 알았는데, 더 정진해야겠다. 이번 항목을 클래스안에서 적용 될 것을 계산하여 스마트 포인터를 만들어 보는 항목이다. 알다 시피 클래스 안에서 스마트 포인터를 사용 할 때는 다음 4가지 경우를 반드시 생각해 봐야 한다. 첫째, 클래스의 생성자에서 어떻게 작동 하게 할 것인가? 둘째, 클래스의 소멸자에서 어떻게 작동 하게 할 것인가? 셋째, 클래스의 복사 생성자에서 어떻게 작동 하게 할 것인가? 넷째, 클래스의 복사 할당자에서 어떻게 작동 하게 할 것인가? 이번 항목은 이렇게 질문 4개에 대한 답변들로 이루어 졌다. 일전에 babo_ptr을 제작해보았던 터라 이 문제에 대해서 생각하여, 그 대처 방안으로 썼었는데, 다시 정리 하려 하니 귀찮다. 왜냐하면 결론을 ..
스마트 포인터 검색 결과
해당 글 3건
항목 31 : 스마트 포인터 멤버 Part 2 : ValuePtr을 향해 ( 난이도 : 6 )
책 정리/More Exceptional C++
2008. 12. 14. 19:53
항목 15: 자원 관리 클래스에서 관리되는 자원은 외부에서 접근할 수 있도록 하자.
외부에서 접근하면 캡슐화가 무너지지 않나? RAII 방식의 객체의 경우 자원의 관리에 그 중점을 두었기 때문에, 그리고 설계상에 멤버 변수로써의 값으로 많이 쓰이기 때문에, 다 무너진다고 볼순 없다는게 저자의 견해이다. 개인적으로 참조자의 객체형은 외부 접근이 있는게 더 유용하다고 판단된다. 왜 더 유용한가? 자원이라는것이 엄밀히 말하면 메모리가 많은데, 윈도우 API에선 .. HDC, HPEN, ..... 등등 미칠듯이 많다. 이것들을 쓸때마다 외부접근이 안되버리면 .. 더 유용하지 않게 된다! 외부접근을 어떻게 해야 하는가? 크게 명시적 호출방법과 암시적 호출 방법이 존재한다. 명시적 호출 방법은 말 그대로 특정 멤버 함수를 이용하여, 자원의 참조자를 얻어 오는 방법이고, 암시적 호출 방법은 oper..
책 정리/Effective C++ 3판
2008. 6. 2. 10:06
항목 28 : 스마트 포인터(Smart Pointer)
이유 1. 영리한 녀석들은 항상 좋기 때문이다. 구현 방법 벙어리 포인터랑 비슷하게 사용하면서 영리한 동작이 있어야 한다. 1. 메모리 누수를 잡는 기능 2. 역참조 연산자 기능 3. Null 인지 검사 기능 4. 스마트 포인터가 벙어리 포인터로 변환기능 5. 다향성 기능 6. const 기능 주의점 1. 모든것을 벙어리 포인터처럼 구현하는것은 불가능하다.(왜냐면 이건 스마트 포인터기 때문이다) 2. 아무리 좋은 약이라도, 필요하지 않을때 먹으면 독이 되듯이 망각하지 말자. 머리는 항상 냉철하게!
책 정리/More Effective C++ 1판
2008. 5. 26. 00:48
최근댓글