friend 판단 기준

공개 API 권한 검토

friend는 캡슐화를 포기하는 문법이 아니라, 제한된 협력자에게만 내부 접근을 허용하는 예외 규칙입니다.

1

공개 함수로 가능한가

게터나 멤버 함수로 의도를 표현할 수 있으면 그쪽을 우선합니다.

2

좌측 피연산자가 외부인가

operator<<처럼 멤버 함수가 어색한 경우를 확인합니다.

3

범위를 줄일 수 있는가

클래스 전체보다 특정 함수 하나에 권한을 주는 편이 안전합니다.

4

관계를 문서화했는가

왜 내부 접근이 필요한지 코드 주변에서 바로 이해되어야 합니다.

전이 없음

A가 B를 friend로 둬도 B의 친구가 A의 친구가 되지는 않습니다.

상속 없음

파생 클래스에 권한이 자동으로 이어진다고 가정하면 안 됩니다.

양방향 아님

권한은 선언한 클래스에서 지정한 대상에게만 한 방향으로 열립니다.