* 무슨 말인고 하니 자원을 클래스로 만들어 관리하면 (생성자에서 자원을 할당하고 소멸자에서 해제)
객체가 생성될 때 자원 할당 (생성자), 객체가 사라질 때 자동으로 해제 (소멸자) 된다.생성된 객체가 스코프룰을 벗어날 때도 자동으로 (당연하지 않은가?) 자원이 해제된다.
예제로... 기존에 해봤던 AutoCriticalSection 이 있겠다.
그런데 C++ 표준 함수에서 std::auto_ptr<> 템플릿과 std::tr1::shared_ptr<> 템플릿을
제공하여 위 사항을 고려하지 않은 클래스에 대해서도 자동화 할 수 있다. 나이스~
잘 이해가 안가는 내용 두가지.
* 위의 스마트 포인터 템플릿을 사용하지 않을 경우 주의할점은..
자원의 복사시에 어떻게 처리할까 하는 문제인데 처리 방법만 얘기한다면
복사 금지, 레퍼런스 카운팅(share_ptr 템플릿), 깊은 복사(deep copy), 소유권 이전
의 방법중에서 선택해야 한다.
* 클래스가 관리하는 자원의 접근 방법 제공 - 명시적 변환, 암시적 변환
위 두개의 내용은 이해가 안된다. 아무래도 C++ 문법책을 조금 더 봐야할 듯.. -_-;;
[출처]
Effective C++ - Scott Meyers / 곽재용
'프로그래밍 > 언어_스크립트' 카테고리의 다른 글
typedef - 사용자 정의형, 함수 포인터 (0) | 2008.02.19 |
---|---|
[Study Effective C++] new로 생성한 객체를 스마트 포인터에 넣는 코드는 별도의 한 문장으로~ (0) | 2008.02.13 |
[Study Effective C++] 대입 연산자의 오버로딩에서 빠지지 말아야 할 것! (0) | 2008.02.12 |
[Study Effective C++] 생성자 와 소멸자에서는 가상 함수를 호출하지 말것! (0) | 2008.02.12 |
[Study Effective C++] 다형성을 가진 기본 클래스의 소멸자는 반드시 가상으로 (0) | 2008.02.12 |