일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- more effective c++
- operator new
- c++
- 언리얼
- 함수 객체
- UE4
- 참조자
- 오블완
- 영화 리뷰
- Smart Pointer
- exception
- 다형성
- implicit conversion
- 메타테이블
- 게임
- 예외
- 스마트 포인터
- 상속
- reference
- lua
- 영화
- Effective c++
- resource management class
- virtual function
- 비교 함수 객체
- 암시적 변환
- 반복자
- effective stl
- 루아
- 티스토리챌린지
- Today
- Total
목록자원 관리 클래스 (2)
스토리텔링 개발자
항목 15. 자원 관리 클래스에서 관리되는 자원은 외부에서 접근할 수 있도록 하자. 제대로 만들어진 스마트 포인터 클래스는 거의 모두 포인터 역참조 연산자도 오버로딩하고 있어서 사용 시의 편의를 제공한다.T* operator->() constT& operator*() const그럼에도 RAII 클래스의 객체를 실제 자원으로 변환해야 할 때가 있다.기존에 쓰이던 API에서 자원을 직접 참조하게 만들어져 있는 경우가 잦기 때문 변환 방법명시적 변환멤버 함수 제공.class Font{public: ... FontHandle get() const { return f; } // 명시적 변환 함수 ...}사용자가 하부 수준 API를 쓰고 싶을 때마다 get을 호출해야 하는 번거로움이 있다...
항목 14. 자원 관리 클래스의 복사 동작에 대해 진지하게 고찰하자. 커스텀 자원 관리 클래스자원 관리 클래스를 직접 만들 필요성을 느낄 때가 있다.힙에 생기지 않는 자원은 기존 스마트 포인터로 관리하는 데 맞지 않다. 커스텀 자원 관리 클래스의 복사 동작RAII 법칙(생성시 자원 획득, 소멸시 자원 해제)을 따르는 클래스의 복사 동작복사를 금지한다.RAII 객체의 복사 자체가 말이 안되는 경우가 많다.뮤텍스 잠금의 경우 복사될 필요성 자체가 없다.복사되면 안되는 RAII 클래스는 반드시 복사 함수를 막아야 한다.Uncopyable을 사용하여 복사를 막는다.(항목 6 참조)class Lock : private Uncopyable // 항목 6 참고{public:...};관리하고 있는 자원에 대해 ..