카테고리 없음

[Effective C++] Item15_자원 관리 클래스에서 관리되는 자원은 외부에서 접근할 수 있도록 하자

해달 2018. 1. 30. 20:31

Item15_자원 관리 클래스에서 관리되는 자원은 외부에서 접근할 수 있도록 하자

챕터 핵심 내용

  • 실제 자원을 직접 접근해야 하는 기존 API들도 많기 때문에, RAII 클래스를 만들 때는 그 클래스가 관리하는 자원을 얻을 수 있는 방법을 열어줘야 한다.
  • 자원 접근은 명시적 변환 혹은 암시적 변환을 통해 가능하다. 안전성만 따지면 명시적 변환이 대체적으로 낫지만, 고객 편의성을 놓고 보면 암시적 변환이 괜찮다.

- 실제 자원을 직접 접근해야 하는 기존 API들도 많기 때문에, RAII 클래스를 만들 때는 그 클래스가 관리하는 자원을 얻을 수 있는 방법을 열어줘야 한다.

- 자원 접근은 명시적 변환 혹은 암시적 변환을 통해 가능하다. 안전성만 따지면 명시적 변환이 대체적으로 낫지만, 고객 편의성을 놓고 보면 암시적 변환이 괜찮다.

  • 암시적 변환으로 인한 자연스러움이 빛을 발할 때도 있다. 하지만 실수의 여지도 늘어난다.
  • 하나의 자원을 (참조 카운팅이 아닌 이상)여러 개가 가리키고 있는 상황은 좋지 않다.