이 중첩 개인 클래스에 대해 연산자 < <을 어떻게 오버로드 할 수 있습니까?중첩 된 개인 클래스의 연산자 <<을 오버로딩 할 수 있습니까?
class outer {
private:
class nested {
friend ostream& operator<<(ostream& os, const nested& a);
};
// ...
};
외부 클래스 컴파일러의 외부를 시도하는 개인 정보 보호에 대한 불평 :
이error: ‘class outer::nested’ is private
과 일 e print 함수는'const' 멤버 함수 여야합니다. 그것이'std :: ostream & print (std :: ostream & out) const' 인 경우,'operator <<'는'return obj.print (dest);'한 줄일 수 있습니다. – Nawaz
왜 std : ostream이 Inner의 친구가되어야합니까? – Mordachai
그렇지 않으면'Inner'에서 정의 할 수 없으므로. ('Inner'에 정의되어 있지 않다면 'Inner'는 Private 멤버 인 'Inner'에 액세스 할 수 없다는 문제가 있습니다.) –