항목 23 : 비멤버 비프렌드로 제공가능한 함수는 그렇게 만들자 public 함수 a,b,c를 가지고 있는 클래스 widget이 있다고 하자. 이때 클래스에 d라는 함수를 추가한다고 하자. d는 자체적인 private접근없이 a,b,c를 차례로 호출하는 기능만을 가지는 함수이다. 즉 유틸함수에 가까운 함수이다. 이때 d라는 함수를 멤버 함수로 만들 수도 있겠지만 그보단 외부에서 호출하는 비멤버 비프렌드 util함수로 선언하는 것이 좋다. d(widget& w)로 위젯을 받아 위젯의 a,b,c를 순서대로 호출하면 된다. 마치 절차지향처럼 말이다. 모순적이게도 이러한 함수 구현 방식이 클래스의 캡슐화를 향상 시킨다. 이게 무슨 소리일까? 역할군이 확실히 나누어진 객체지향 작업에서 클래스 제작자가 클래스의 내..