{

내부의 것은 무엇을 말하는가?

바로 핸들을 말한다.


핸들이란 무엇인가?

차라는 녀석을 마음데로 움직이는 조종대 이다.


이 조종대를 왜 노출 시키지 말아야 하는가?

나라에선 차가 너무 유용하고, 위험하기에, 운전면허증을 따야지만 몰 수 있게 만들었다. 마찬가지다. 핸들 역시 아무에게나 잡을 수 있게 허락해 준다면, 위험해서 도로에 나오겠는가?

.. 너무 비유만 하지 말고 C++ 로 설명해 해줘~
소켓을 예로 들겠다.


소켓을 없앴는데, 어찌 쓰다 보니까, 다시 바인드 할 수도 있는 노릇이다.


예외적으로 이렇게 빼야 할 때도 있는데, 그럴때는 어떻게 하는가?

소켓의 경우 IOCP 와 연결하기 위해서 그 값이 필요로 하는데, 그때는 as_handle 같은 함수를 만들어서, 탈바꿈 해줌으로써, 조금은 더 좋게 사용 할 수 있다.

예)

휴~ 중요한 것은 내부 핸들을 손 쉽게 빼내지 말라는 것이다.


그러면 뺄때마다 성능이 떨어지는데??

음.. 우선 잘 짜놓고 생각해도 늦지 않을것 같다. 성능은 항상 맨 마지막에 고려해볼 대상.(물론 예외는 있지만 ㅋ)
}


'책 정리 > C++ Coding Standards : C++ 코딩의 정석' 카테고리의 다른 글

항목 47 : 멤버 변수의 정의와 선언은 같은 순서로 하라. ( Define and initialize member variables in the same order. )  (0) 2009.04.01
항목 46 : 특정한 클래스에 맞는 new를 제공한다면, 모든 표준 형식을 제공해야 한다. ( If you provide any class-specific new, provide all of the standard forms (plain, in-place, and nothrow). )  (0) 2009.04.01
항목 45 : new와 delete는 항상 같이 제공하라. ( Always provide new and delete together. )  (0) 2009.04.01
항목 44 : 비멤버 함수를 활용하라. ( Prefer writing nonmember nonfriend functions. )  (0) 2009.03.31
항목 43 : Pimpl을 적당히 활용하라. ( Pimpl judiciously. )  (0) 2009.03.31
항목 41 : 특징 없는 값의 집합을 제외하고는 모든 데이터 멤버를 사영으로 하라. Make data members private, except in behaviorless aggregates (C-style structs).  (0) 2009.03.31
항목 40 : 간접 변환을 피하라. ( Avoid providing implicit conversions. )  (1) 2009.03.30
항목 39 : 가상 함수는 비공용으로, 공용 함수는 비가상으로 설정하라. ( Consider making virtual functions nonpublic, and public functions nonvirtual. )  (0) 2009.03.30
항목 38 : 안전한 오버라이딩을 연습하라. ( Practice safe overriding. )  (0) 2009.03.02
항목 37 : 상속의 정확한 의미를 이해하자. 재사용을 위해 상속하는 것은 아니지만, 재사용은 필요하다. ( Public inheritance is substitutability. Inherit, not to reuse, but to be reused. )  (0) 2009.03.02
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기