친구 기능 / 클래스를 비공개 또는 공개로 선언하는 것에는 차이가 있습니까? 온라인에서이 내용을 찾을 수 없습니다.
나는 다음의 차이점을 의미합니다.
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 B
는 class 의 친구입니다 A
.
당신이 쓰는 경우에도 friend class B
에서 protected
의 섹션 A
, 그것은 그 말은하지 않습니다 B
만 액세스 할 수 있습니다 protected
과 public
의 구성원 A
.
한 B
번의 친구가 A
되면, 어느 섹션 에서든 어떤 회원 이든 액세스 할 수 있다는 것을 항상 기억하십시오 .A
friend class B
답변
친구 선언은 클래스 본문에 나타나고 친구 선언이 나타나는 클래스의 비공개 및 보호 된 멤버에게 함수 또는 다른 클래스 액세스 권한을 부여합니다.
이러한 액세스 지정자는 친구 선언의 의미에 영향을 미치지 않습니다 (비공개 : 공개 또는 공개 섹션에 표시 될 수 있음).