friend
Programming/C++ 2012. 5. 26. 01:16 |- 클래스와 함수에 대한 friend 선언 -
클래스의 friend 선언
* A 클래스가 B 클래스를 대상으로 friend 선언을 하면, B 클래스는 A 클래스의 private 멤버에 직접 접근이 가능하다.
* 단, A 클래스도 B 클래스의 private 멤버에 직접 접근이 가능하려면, B 클래스가 A 클래스를 대상으로 friend 선언을 해줘야 한다.
friend 선언은 언제 선언해야 할까?
: c++ 문법 중에서 논란이 되었던 것 중 하나가 바로 이 friend 선언이다. friend 선언은 객체지향의 대명사 중 하나인 '정보은닉' 을 무너뜨리는 문법이기 때문이다.
※ friend 선언은 지나치면 아주 위험할 수 있습니다. friend 선언은 필요한 상황에서 극히 소극적으로 사용해야 합니다. - 열혈강의 C++
◇ friend 선언이 좋은 약으로 사용되는 상황은, 연산자 오버로딩을 공부하면서이다.
함수의 friend 선언
: 전역함수를 대상으로도, 클래스의 멤버함수를 대상으로도 friend 선언이 가능하다. 물론 friend 선언된 함수는 자신이 선언된 클래스의 private 영역에 접근이 가능하다.
friend void ShowPointPos(const Point&);
이 선언에는 friend 선언 이외에, 다음의 함수원형 선언이 포함되어 있다.
void ShowPointPos(const Point&);
따라서 friend 선언을 위해서 별도의 함수원형을 선언할 필요는 없다.
'Programming > C++' 카테고리의 다른 글
상속(inheritance) (0) | 2012.06.06 |
---|---|
C++에서의 static (0) | 2012.05.30 |
const 객체와 const 객체의 특성 그리고 const 함수 오버로딩 (0) | 2012.05.26 |
복사 생성자의 호출시점 (0) | 2012.05.25 |
깊은 복사 & 얕은 복사 (0) | 2012.05.24 |