친구 기능
정의 :
클래스 친구 기능은 클래스 외부에 정의되어 있지만 클래스의 민간 및 보호 된 멤버의 모든 구성원 권한이 있습니다. 클래스에 정의 된 프로토 타입 친구 기능이 등장하지만, 친구 함수는 멤버 함수 아니지만.
친구 친구 기능 호출되는 함수가 될 수 있으며 친구는이 경우, 친구 클래스 호출되는 클래스가 될 수 있으며, 전체 클래스와 모든 구성원이 친구가 있습니다.
당신이 클래스의 친구로 함수를 선언하면 클래스 정의에서 함수 프로토 타입 전에 키워드 친구를 사용합니다.
다음과 같이 코드입니다 :
class A
{
public:
int m,s,h;
friend class B;
};
문 B 후 멤버 함수 친구 기능, A의 개인 보호 멤버에 액세스 할 수 있습니다.
예 :
#include <bits/stdc++.h>
using namespace std;
class Clock
{
public:
friend void showtime(Clock B);
void settime(int hh,int mm,int ss);
private:
int h,m,s;
};
void Clock::settime(int hh,int mm,int ss)
{
h=hh,m=mm,s=ss;
}
void showtime(Clock B)
{
cout<<B.h<<":"<<B.m<<":"<<B.s<<endl;
}
int main()
{
Clock A;
A.settime(2,3,4);
showtime(A);
return 0;
}
결과의 구현 :
친구 클래스의 사용을 참고 :
(1) 친구가 상속되지 않는다.
(2) 친구 관계 가환 단방향 아니다. 클래스 B가 클래스 A의 친구 인 경우, 클래스 A는 클래스에 해당 문이 있는지 여부에 따라 반드시 클래스 B의 친구가 아닙니다.
(3)는 친구 전이 아니다. 클래스 B가 클래스 A의 친구 인 경우, 클래스 B가 C의 친구이며, C는 친구 클래스 A는 필요하지 않은 해당 클래스 선언과 유사 보면