본문 바로가기

C++

[C++] 프렌드 friend

프렌드 함수

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

클래스 선언부에 함수를 friend로 지정하면 클래스 내의 private 를 포함한 모든 멤버를 사용할 수 있다. 

 

 

프렌드 클래스

class Some
{
     friend class Any;
     ....
};

클래스 선언부에 클래스를 friend로 지정하면 Any의 멤버함수가 Some의 모든 멤버에 접근할 수 있다.

 

 

프렌드 멤버 함수

class Some
{
     ....
     friend void Any::func(Some &S);
};

클래스 선언부에 멤버함수를 friend로 지정하면 Any의 func함수만 Some의 모든 멤버에 접근할 수 있다.

프렌드 멤버함수는 보통 대상 클래스를 인수로 가지고 있기 때문에 Some 클래스 원형 -> Any 클래스 정의부 -> Some 클래스 정의부 순서로 선언해야 한다.

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

[C++] 복사 생성자  (0) 2022.01.04
[C++] 연산자 오버로딩  (0) 2022.01.04
[C++] 디폴트 인수  (0) 2022.01.04
[C++] 인라인 함수  (0) 2022.01.03
[C++] 레퍼런스  (0) 2022.01.03