{

비멤버 함수란 무엇인가?

멤버 함수가 아닌 함수를 말한다. 즉, 클래스 외부에 있는 함수를 말한다.


비멤버 함수가 뭐가 좋길래 활용해야 하는가?

1. 비멤버 함수는 클래스의 무게를 줄여 준다.
  ① 이는, 좀더 유지보수가 편해 지게 해 주는 초석이 된다.
  ② 가독성이 올라 간다. 왜냐구? 봐야 할게 적으니까~

2. General Programming을 할 수 있다.
  ① 이는, 한번 만들어 둔것을 손쉽게 재사용 할 수 있게 해주는 초석이 된다.
  ② 코드의 재사용으로 역시 알아야 할 것이 줄어 들게 된다.


사례를 들어 달라.

Excetional C++ Sytle 에서 string 클래스의 예를 보면 될 듯 싶다.
http://www.ikpil.com/841


보통 어떻게 비멤버 함수를 만들지 결정 하는가?

1. operator=,-> [] () 는 멤버로 만든다.
2. 반드시 멤버가 되어야 하는 경우 멤버로 만든다.(private 접근용, 정책 등)
3. 그 외라면, 비멤버 함수로 하는 것이 좋다.
}

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

항목 49 : 컨스트럭터와 디스트럭터에서는 가상 함수의 호출을 피하라. ( Avoid calling virtual functions in constructors and destructors. )  (0) 2009.04.03
항목 48 : 컨스트럭터 내에서 할당 대신 초기화를 사용 하라. ( Prefer initialization to assignment in constructors. )  (0) 2009.04.01
항목 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
항목 43 : Pimpl을 적당히 활용하라. ( Pimpl judiciously. )  (0) 2009.03.31
항목 42 : 내부의 것은 너무 노출시키지 말라. ( Don’t give away your internals. )  (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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기