C ++ 친구가 세 번째 작업 기능

친구 기능

정의 :

클래스 친구 기능은 클래스 외부에 정의되어 있지만 클래스의 민간 및 보호 된 멤버의 모든 구성원 권한이 있습니다. 클래스에 정의 된 프로토 타입 친구 기능이 등장하지만, 친구 함수는 멤버 함수 아니지만.

친구 친구 기능 호출되는 함수가 될 수 있으며 친구는이 경우, 친구 클래스 호출되는 클래스가 될 수 있으며, 전체 클래스와 모든 구성원이 친구가 있습니다.

당신이 클래스의 친구로 함수를 선언하면 클래스 정의에서 함수 프로토 타입 전에 키워드 친구를 사용합니다.

다음과 같이 코드입니다 :

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는 필요하지 않은 해당 클래스 선언과 유사 보면

추천

출처www.cnblogs.com/aaddvvaanntteezz/p/11610486.html