Programming/C C++
클래스에서 멤버를 private 안에 두면 외부에서는 접근할 수 없습니다. 하지만 특정 클래스를 프렌드로 선언해두면 모든 멤버에 자유롭게 접근하도록 허용할 수 있습니다. 
class Base
{
   friend class deri;
private:
   int value;
};
Base 클래스에서 deri라는 이름의 클래스를 friend로 지정하였습니다. 그 하위에 value라는 변수를 private안에 두었는데 private 키워드의 규칙대로라면 외부에서는 value변수에 접근할 수 없을 것입니다.
class deri
{
public:
   void b_value();
};

void deri::b_value()
{
   Base b;
   b.value = 10;

   cout << b.value << endl;
}
deri 클래스는 Base 클래스의 value변수에 값을 지정하고 그 값을 학인하는 b_value() 함수를 가지고 있습니다. 이는 deri 클래스가 Base 클래스에서 friend로 선언되어 있기에 value 변수로의 접근이 가능한 것입니다.
deri d;
d.b_value();
deri 의 b_value()함수를 호출하여 결과를 확인합니다.

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

[Visual C++] 클래스 템플릿  (0) 2012.10.18
[Visual C++] 업/다운 캐스팅  (0) 2012.10.17
[Visual C++] 프렌드 클래스  (0) 2012.10.16
[Visual C++] 배열  (3) 2012.10.10
[Visual C++] 복사생성자  (0) 2012.10.09
[Visual C++] 클래스(Class) 의 기본  (5) 2012.10.08
0 0