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;
};