이것만은 잊지 말자!

- 멤버 함수 보다는 비멤버 비프렌드 함수를 자주 쓰자
    - 캡슐화 정도가 높아지고 패키징 유연성도 커지며, 기능적인 확장성도 늘어남

비멤버 함수의 장점

  • 캡슐화 : 외부에서 이 함수를 사용할 수 없음
  • 비멤버 함수 대신에 유틸리티 클래스의 정적 함수로도 가능
    • 해당 클래스의 멤버 함수가 아니면 됨 => 해당 클래스의 캡슐화에 영향을 주지 않아야 함
  • 패키징 유연성 상승 => 컴파일 의존도 낮춤, 확장성 상승

해당 클래스의 같은 네임 스페이스에 비멤버 함수로 생성

  • 편의를 위한 많은 함수가 있다면 분류하여 헤더 파일을 나누는 것도 좋음
    • C++ 표준 라이브러리가 이 구조로 됨
    • 사용하지 않는 코드를 고려하지 않아도 되어 컴파일 의존성을 줄임 
    • 편의 함수 집합의 확장이 쉬워짐
// WebBrowser.h // WebBrowser와 관련된 핵심 기능들
namespace WebBrowserStuff
{
	class Webrowser { ... };
}

// WebBrowserBookMark.h
namespace WebBrowserStuff
{
	// 즐겨찾기 관련 편의 함수들
}

// WebBrowserCookie.h
namespace WebBrowserStuff
{
	// 쿠키 관련 편의 함수들
}

프렌드 함수 : 자신과 같은 클래스의 객체의 private 멤버 / 함수를 접근이 가능하게 하는 키워드

+ Recent posts

목차