• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

[2:31] 입출력 연산자 오버로딩을 friend로 사용하는 이유

20.03.28 09:49 작성 조회수 350

0

안녕하세요. 교수님

바쁘실텐데 늘 꼼꼼히 봐주시는 교수님 감사합니다.

friend 함수는 다른 class 안에 private 맴버를 접근하기 위해 사용하는 함수라고 배웠는데 입출력 연산자 오버로딩을 사용하기 위해서 friend를 꼭 사용해야 하나요?

입출력 연산자 오버로딩 앞에 friend를 지워보니 

operator에서 "too many parameters for this operator function" 라는 오류가 납니다.

1. 위에 오류와 friend 함수를 꼭 사용하는 이유는 무엇인가요?

2. friend 를 지우고 사용할수 있는 방법은 없을까요?

3. friend를 지울수 있다면 맴버 접근을  instance를 사용하지 않고 접근할수있나요? (ex. point.m_x -> m_x)

늘 정성드런 답변에 감사드립니다!!

답변 2

·

답변을 작성해보세요.

2

검색 해보니 아래 글이 도움이 될 것 같습니다. 문법적으로 가끔 안되는 것들이 있어서 불편하실 순 있는데 그건 모든 언어 공통입니다. 여러가지로 시도해보시는 것은 아주 좋은 공부방법입니다.

https://stackoverflow.com/questions/46793555/why-use-stdostream-and-friend-for-operator-overloading

0

홍길동님의 프로필

홍길동

2020.12.30

9_1 강의, 10분) friend를 없에고 멤버 함수로 사용하는 방법~!