다음을 통해 공유


Friend 선언

이전에 선언 되지 않은 friend 함수를 선언 하면 해당 함수 포함 nonclass 범위를 내보냅니다.

Friend 선언에서 선언 된 함수를 사용 하 여 선언 된 것 처럼 취급의 extern 키워드입니다.(에 대 한 자세한 내용은 extern를 참조 하십시오 정적 저장소 클래스 지정자입니다.)

해당 프로토타입 하기 전에 친구와 글로벌 범위를 가진 함수를 선언할 수 있습니다 있지만 친구 하기 전에 완전 한 클래스 선언이 모양으로 멤버 함수를 선언할 수 없습니다.다음 코드가 왜 실패를 보여 줍니다.

class ForwardDeclared;   // Class name is known.
class HasFriends
{
    friend int ForwardDeclared::IsAFriend();   // C2039 error expected
};

클래스 이름을 입력 하는 앞의 예제 ForwardDeclared 범위 수 있지만 전체로-함수 선언 부분에 특히, IsAFriend -알 수 없는.따라서는 friend 선언 클래스에서 HasFriends 오류가 발생 합니다.

서로 연결 되는 두 개의 클래스를 선언 하 고 두 번째 클래스의 전체 첫 번째 클래스의 friend로 지정 되어야 합니다.이 제한은 이유로 컴파일러에 개별 친구 두 번째 클래스 선언 된 지점 에서만 함수를 선언 하는 충분 한 정보입니다.

[!참고]

두 번째 클래스의 전체 친구의 첫 번째 클래스에 있어야 하지만 첫 번째 클래스 함수 두 번째 클래스의 친구 수를 선택할 수 있습니다.

참고 항목

참조

friend (C++)