(C++) 8.11 친구 함수와 클래스 friend

이준우·2021년 11월 24일
0

class 외부 함수에서 class 내부의 멤버 값을 참조하고 싶은데, class member들이 private로 잡혀있게 되면 이와 같은 문제가 생긴다. 이를 해결하는 방법이 friend 키워드이다.


이처럼 class가 2개인데, 외부 함수로 모두를 출력하고 싶으면 다음과 같이 작성한다. 하지만 이때 class A는 class B가 있는지 모르므로, B& b를 읽어들일 수 없다. 그래서 class B가 존재한다고 미리 알려줘야 (forward declaration) 오류없이 가능하다.

하지만 보통 이 방법은 잘 쓰이지 않는다. 그 이유는 디버깅이나 분석할때 왔다갔다 해야하는 번거로움이 있어서 잘 사용되지 않는다. 예외로는 아주 복잡한 엔진이나 프로그램을 만들때, 코드가 길어지는 번거로움을 조금이나마 덜어내기 위해 사용하는 방법이다.

friend class를 사용하는 방법
아직 제대로 이해하기엔 힘든 것 같다. 빨리 문법을 끝내고 프로그램을 만들며 실제 체감하는 것이 더욱 빠르게 성장하므로 계속 반복해서 봐야할 것 같다.

0개의 댓글