1
f는 struct Y의 멤버 함수이며 struct X에서 친구로 선언되었습니다. f가 의도 한대로 X의 private 멤버에 액세스 할 수없는 이유는 무엇입니까?C++ 멤버가 친구로 기능 함
회원 기능을 효과적으로 만드는 방법을 이해할 수 있도록 도와주십시오. 필자는 친구들처럼 글로벌 함수의 접근 가능한 예제를 쉽게 발견했지만 멤버 함수는 찾지 못했습니다.
struct X;
struct Y {
void f(X* a);
};
struct X {
private:
int i;
public:
friend void Y::f(X* a);
};
void Y::f(X* x) {
x->i = 0; // Error: member "X::i" (declared at line 9) is inaccessible
}
http://ideone.com/goHLoC 어떤 컴파일러를 사용합니까? – Slava
나를위한 작품 g ++ 5.1.0 –
Visual Studio 인 경우 intellisense는 오류를보고하는 것으로 보이지만 잘 컴파일해야합니다. – AlexG