다음을 통해 공유


Friend 함수

friend 함수는 클래스의 멤버가 아니지만 클래스의 전용 및 보호된 멤버에 액세스할 수 있는 함수입니다. friend 함수는 클래스 멤버로 간주되지 않으며, 특수 액세스 권한이 부여된 일반 외부 함수입니다. friend는 클래스 범위에 포함되지 않으며, 다른 클래스의 멤버가 아닌 경우 멤버 선택 연산자(. 및 –>)를 사용하여 호출되지 않습니다. friend 함수는 액세스 권한을 부여하는 클래스에서 선언됩니다. friend 선언은 클래스 선언의 어느 곳에나 배치될 수 있으며, 액세스 제어 키워드의 영향을 받지 않습니다.

다음 예제에서는 Point 클래스와 ChangePrivate라는 friend 함수를 보여 줍니다. friend 함수는 매개 변수로 받는 Point 개체의 전용 데이터 멤버에 액세스할 수 있습니다.

예제

// friend_functions.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;
class Point
{
    friend void ChangePrivate( Point & );
public:
    Point( void ) : m_i(0) {}
    void PrintPrivate( void ){cout << m_i << endl; }

private:
    int m_i;
};

void ChangePrivate ( Point &i ) { i.m_i++; }

int main()
{
   Point sPoint;
   sPoint.PrintPrivate();
   ChangePrivate(sPoint);
   sPoint.PrintPrivate();
}
  

참고 항목

참조

friend (C++)