Friend
- 한 클래스가 다른 클래스 내부의 private 멤버에 접근하기 위해서 사용하는 방법이다.
- A와 B 클래스가 있다고 가정할 때, A 클래스가 B 클래스를 대상으로 friend 선언을 하면, B 클래스는 A클래스의 private 멤버에 직접 접근이 가능하다. 단, 역도 성립하기 위해서는 B 클래스가 A 클래스를 대상으로 friend 선언을 해줘야 한다. 또한 함수도 선언이 가능하다.
class Girl
{
private:
friend class Boy;
. . .
public:
. . .
}
class Boy
{
private:
friend class Girl;
. . .
public:
. . .
}
SomeClass
{
. . .
public:
friend SonmeFunc(. . .);
. . .
}
SomeClass::SomeFunc(. . .)
{
. . .
}
- 하지만, 객체지향의 목표 중 하나인 정보은닉을 무너뜨리는 문법이기 때문에, 가급적 사용하지 않는 것이 바람직하다.