PL/C++
[C++] friend function
SweetDev
2021. 12. 15. 20:58
friend함수는, 클래스의 멤버함수가 아닌 다른 외부 함수에게 클래스의 모든 멤버를 접근할 수 있는 권한을 부여한다.
클래스의 멤버로 선언하기에는 무리가 있고, 클래스의 모든 멤버를 자유롭게 접근할 수 있는 함수를 작성할 때 쓰면 좋다.
프렌드 유형에는 3가지가 있다.
1) 전역 함수
예:
// 외부 함수 equals() 가져오기
class Rect {
...
friend bool equals(Rect r, Rect s);
};
2) 다른 클래스의 멤버 함수
예:
// RectManager 클래스의 equals() 가져오기
class Rect {
...
friend bool RectManager::equals(Rect r, Rect s);
};
3) 다른 클래스 전체
// RectManager 클래스의 함수 전체 가져오기
class Rect {
...
friend RectManager;
};