class Boy
{
private:
int height;
friend class Girl; //Boy 클래스는 Girl 클래스를 friend로 선언하였다. 따라서 Girl 클래스
//의 모든 private 멤버에 직접 접근이 가능하다.
// friend 선언은 private 혹은 public 어디에나 선언 가능하다.
public:
Boy(int len) : height(len)
{}
...
}
class Girl
{
...
void ShowYourFriendInfo(Boy &frn)
{
cout << "His height: " << frn.height << endl;
}
}
friend 는 객체지향의 쩡보은닉을 무너뜨리는 문법이다.
“그럼 왜 존재하는 거죠? friend 선언은 하지 말아야 하나요?
friend 선언은 지나치면 아주 위험할수 있다. 필요한 상황에서 극히 소극적으로 사용해야 한다.
friend 선언이 좋은 약으로 사용되는 상황은, 이후에 연산자 오버로딩을 공부하면서 보게 될 것이다.