friend class
한 클래스의 private 혹은 protected 멤버에 다른 클래스가 직접 접근할 수 있도록 허용하는 기능이다.
이를 통해 두 클래스가 밀접하게 협력할 수 있도록 한다.
특징
1. 캡슐화 유지:
- friend는 클래스간 협력을 허용하면서도 외부에는 비공개 멤버를 노출하지 않는다.
2. 단방향 관계:
- class A가 class B를 friend로 선언하면, class B는 class A의 private/protected 멤버에 접근할 수 있지만, 반대는 성립하지 않는다.
3. static 멤버 접근 가능:
- friend 클래스는 static 멤버에도 접근할 수 있다.
4. 효율적인 데이터 공유:
- getter/setter를 사용하지 않고 데이터를 직접 공유할 수 있다.
주의점
1. 캡슐화 위반 위험:
- friend 키워드는 클래스 간의 강한 의존성을 초래할 수 있어 캡슐화 원칙이 약화될 수 있다.
2. 유지보수 어려움:
- 클래스 간 관계가 복잡해질 경우, 코드 변경 시 다른 클래스에도 영향을 줄 수 있다.
'내배캠 > C++' 카테고리의 다른 글
디자인 패턴(Factory Pattern) (0) | 2025.01.20 |
---|---|
Greedy 알고리즘 (0) | 2025.01.08 |
Linked List 클래스로 구현 (0) | 2025.01.07 |
유클리드 거리 공식 (0) | 2025.01.06 |
priority_queue (1) | 2025.01.06 |