c++ friend 함수 예제

액세스 지정자는 친구 선언의 의미에 영향을 미치지 않습니다 (비공개: 또는 공용: 섹션, 차이 없음) 이러한 연산자는 클래스 본문에 정의될 수 있으며, 이는 별도의 비템플릿 연산자를 생성하는 효과가 있습니다<<에 대해 각 T및 템플릿이 아닌 연산자<<를 Foo의 친구로 만듭니다 친구 함수는 액세스 권한을 부여하는 클래스에 의해 선언되므로 친구 함수는 메서드와 같은 클래스 인터페이스의 일부입니다. Friend 함수를 사용하면 x.f(y) 대신 f(x) 또는 x.g(y) 대신 g(x,y)와 같은 대체 구문을 사용할 수 있습니다. Friend 함수는 메서드와 캡슐화에 동일한 영향을 미칩니다. 클래스 또는 클래스 템플릿 X 내에서 friend 선언에 먼저 선언 된 이름은 X의 가장 안쪽 으로 둘러싸인 네임 스페이스의 구성원이 되지만 네임스페이스에서 일치하는 선언이 없는 경우 조회(X를 고려하는 인수 종속 조회 제외)에는 표시되지 않습니다. 범위가 제공됩니다 – 자세한 내용은 네임스페이스를 참조하십시오. 친구는 함수, 함수 템플릿 또는 멤버 함수 또는 클래스 또는 클래스 템플릿일 수 있으며, 이 경우 전체 클래스와 모든 멤버가 친구일 수 있습니다. 템플릿 친구의 일반적인 사용 사례는 클래스 템플릿에서 작동하는 비멤버 연산자 오버로드선언입니다(예: operator<<(std::ostream&, const Foo&)는 일부 사용자 정의 Foo 키워드 friend 컴파일러를 사용하여 주어진 함수가 친구 기능. 개인 멤버는 선언된 클래스 내에서만 액세스할 수 있습니다. 친구 함수는 다른 클래스의 개인 및 보호 된 멤버에 액세스 하는 데 사용 됩니다. 그것은 클래스 사이의 다리로 작동합니다. 2) 우정은 상호가 아닙니다. 클래스 A가 B의 친구인 경우 B는 자동으로 A의 친구가 되지 않습니다.

친구 클래스는 친구로 선언된 클래스의 개인 및 보호된 멤버 모두에 액세스할 수 있습니다. 데이터에 액세스하기 위해 친구 함수선언은 키워드 친구로 시작하는 클래스의 본문 내에서 수행해야 합니다. 친구 기능 친구 클래스처럼, 친구 기능은 개인 및 보호 회원에 액세스 할 수있는 특별한 부여를 부여 할 수 있습니다. friend 함수일 수 있습니다: a) 다른 클래스 b의 메서드) 로컬 클래스가 정규화되지 않은 함수 또는 클래스를 친구로 선언할 때, 가장 안쪽에 있는 클래스가 아닌 클래스의 함수와 클래스만 조회되고 전역 함수가 아닙니다. 전이적(친구의 친구는 친구가 아님) 템플릿 친구 선언은 멤버 함수 또는 멤버 유형일 수 있는 클래스 템플릿 A의 멤버 이름을 지정할 수 있습니다(형식은 정교한 형식 지정기 사용).

Bez kategorii