Friend 함수
A friend 함수가 클래스의 멤버가 아니지만 클래스 전용 및 보호 된 멤버에 액세스 하는 함수입니다.Friend 함수는 클래스 멤버로 간주 되지 않아. 이러한 특수 액세스 권한이 주어 집니다 일반 외부 함수입니다.친구는 클래스 범위에 없는 및 멤버 선택 연산자를 사용 하 여 호출 되지 않는 (. 및->) 다른 클래스의 멤버가 아닌 경우.A friend 함수가 액세스 허용 되는 클래스에 의해 선언 됩니다.friend 선언을 저장할 수 있습니다 아무 곳 이나 클래스 선언에 있습니다.액세스 제어 키워드는 적용 되지 않습니다.
다음 예제는 Point 클래스 및 friend 함수, ChangePrivate.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();
}