IT박스

C ++에서 친구 선언-공개와 비공개의 차이점

itboxs 2020. 7. 5. 08:14
반응형

C ++에서 친구 선언-공개와 비공개의 차이점


친구 기능 / 클래스를 비공개 또는 공개로 선언하는 것에는 차이가 있습니까? 온라인에서이 내용을 찾을 수 없습니다.

나는 다음의 차이점을 의미한다.

class A
{
 public: 
      friend class B;
 };

class A
{
 private: //or nothing as the default is private
      friend class B;
 };

차이가 있습니까?


아니요, 차이점은 없습니다. 클래스 B는 클래스 A의 친구이며 이제 개인 및 보호 된 멤버에 액세스 할 수 있습니다.


구문 friend class B클래스 멤버선언하지 않으므로 클래스 A를 작성하는 위치는 중요하지 않으므로 class Bclass 의 친구입니다 A.

당신이 쓰는 경우에도 friend class B에서 protected의 섹션 A, 그것은 그 말은하지 않습니다 B만 액세스 할 수 있습니다 protectedpublic의 구성원 A.

B번의 친구가 A되면, 어느 섹션 에서든 어떤 회원 이든 액세스 할 수 있다는 것을 항상 기억하십시오 .Afriend class B


친구 선언은 클래스 본문에 나타나고 친구 선언이 나타나는 클래스의 비공개 및 보호 된 멤버에게 함수 또는 다른 클래스 액세스 권한을 부여합니다.

이러한 액세스 지정자는 친구 선언의 의미에 영향을 미치지 않습니다 (비공개 : 공개 또는 공개 섹션에 표시 될 수 있음).

참고 URL : https://stackoverflow.com/questions/6407691/friend-declaration-in-c-difference-between-public-and-private

반응형