• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

9.2 입출력연산자

22.12.26 18:24 작성 조회수 219

0

입출력 연산자는 다른 연산자들과 다르게 클래스friend를 쓰지 않으면 문법적으로 오류가 되던데 왜 그런건가요?? 강의에서 잘 이해가 안가서요

답변 1

답변을 작성해보세요.

0

Ambition님의 프로필

Ambition

2023.02.13

iostream은 사용자가 정의한 class가 아닌 c++에서 정의한 표준 객체이므로, 클래스가 서로 다르기 때문에 private 멤버에 접근하기 위해서는 friend를 선언해 줘야합니다.

따라서 입출력 연산자 오버로딩은 다른 연산자 오버로딩(산술 연산자, 단항 연산자 등)에서 멤버함수 버전과 비멤버함수 버전 둘 다 가능한 것과 달리, 오직 비멤버함수로만 오버로딩이 가능합니다.