0

친구 함수로 아래 첨자 연산자 (연산자 [])를 오버로드 할 수없는 이유는 무엇입니까?친구 기능을 사용하여 연산자 [] 오버로드

+0

질문에 더 많은주의를 기울일 수 있도록 언어 태그를 추가해야합니다 ('friend-function' 태그 설명에서'C++'). – Aaron

+0

제안 해 주신 것에 감사드립니다. @Aaron –

답변

1

비얀 스트로브 스트 룹은 D&E book에서 말하기를 :

은 그러나, C++의 원래 디자인에, 내가 회원이 사업자에게 [], ()->을 제한. 이 연산자는 항상 왼쪽 피연산자의 상태에 의존하고 일반적으로 수정하기 때문에 다소 모호한 오류의 가능성을 제거하는 무해한 제한 인 것처럼 보였습니다. 그러나 불필요한 유모주의의 사례 일 수 있습니다.

0

Friends은 클래스의 확장이 아니며 xy가 클래스의 비공개 또는 보호 된 멤버에 액세스 할 수 있다는 키워드입니다. 이런 식으로 함수를 재정의하거나 추가 할 수 없습니다.

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

Source