friend선언은 클래스와 전역함수, 또는 클래스와 클래스 사이에서 private으로 선언된 멤버변수를 접근 가능하게 해준다.
쉽게 말해서 'friend' 말 그대로 '친구'라고 인정해주는거다.
원래 private으로 선언한 멤버변수는 그 클래스 안에서만 접근이 가능하고, 클래스 외부에서는 접근하려하면 컴파일에러가 발생한다.
그런데 '친구'로 인정한 전역함수, 또는 다른 클래스는 이 멤버변수를 가져가 쓸 수 있는것이다. 심지어 값을 바꿔놓을 수도 있다.
//--friend 예문 --//
위 코드를 보면 알겠지만, A군이 B군을 친구로 여기기때문에 B군은 A군의 정보를 사용할 수 있다.
그런데 B군은 A군을 친구로 생각하지 않기때문에 A군은 B군의 정보를 사용할 수 없다!!
허허,, 이런 인간(은 아니지만..)말종같은 B군!!
뭐 어찌됬든 ㅇㅅㅇ;;
만약 전역함수에 대해서 friend선언을 하려면 클래스의 friend선언과 비슷하게 " friend 리턴타입 함수이름(타입 파라미터); "
요런식으로 하면 된다.
ex) friend void showAkun_s_data(Akun& stuff);
-friend선언은 클래스의 접근제어 키워드와 상관이 없기때문에 클래스 중괄호 안 어디에서든 선언 가능하다. (열혈강의 C++ 168pg)
아, friend선언은 특별한일 아니면 쓰지 않는게 좋다. 클래스의 '정보은닉'에 맞지 않기때문이다.
특별한 일이란, 연산자 오버로딩을 말하고 다른부분에선 사용하지 않는것을 권한다.
'Coding Note' 카테고리의 다른 글
[MySQL] 기본적인 쿼리 (0) | 2011.01.31 |
---|---|
[PHP] 기본적인 코딩규칙 (0) | 2011.01.31 |
[winAPI] 얌얌.exe - 재밌다ㅋ (0) | 2011.01.27 |
[PHP] form 태그로 데이터 이용하기 (0) | 2010.11.19 |
[HTML] HTML 기본 (0) | 2010.11.17 |