본문 바로가기
Programming/C/C++

[C++] Friend 키워드

by 황금표정 2012. 6. 10.

정보 은폐는 신뢰성을 높이지만, 사용을 불편하게 한다.

그래서 예외를 만들기 위해 friend 를 사용한다.

 

1. 프렌드 함수

void func();

class Some {
friend void func();
....
};

void func() {
// class Some의 모든 멤버를 사용할 수 있다.
}

필요에 따라 클래스를 통째로 프렌드로 지정할 수 있다.

 

 

2. 프렌드 클래스

class Your;

class My {
friend class Your;
....
};

class Your {
// Class My의 모든 멤버를 사용할 수 있다.
};

- 프렌드는 자신을 사용하도록 허락함을 뜻한다.

- 프렌드 지정은 단방향이므로 A가 B를 프렌드 선언 하면 B는 A를 사용하지만, A는 그렇지 못한다.

- A가 B를, B가 C를 프렌드 선언해도 C는 A를 사용하지 못한다. (A와 B가, B와 C가 친구라고 해서 꼭 A와 C가 친구는 아니다.)

- A가 B를 프렌드 선언해도, B의 자식 C는 A를 사용하지 못한다. (A와 B가 친구여도, A가 B의 자식과 친구는 안된다.)

 

 

 

출처 : http://ddaidock.blog.me/40102427522

반응형

'Programming > C/C++' 카테고리의 다른 글

[C++] string  (0) 2013.04.05
Template Class 만들 때 주의할 점  (0) 2013.01.28
CallBack 함수  (1) 2012.06.10