클래스에서 friend는 언제 쓰는 거죠?
조회수 9803회
1 답변
-
friend
를 명시하면 해당 클래스가protect data/function
에 접근하는 것이 가능해집니다.밑의 코드에서는 아무나
Child
클래스의name
에 접근할 수 있지만 오직Mother
클래스만이Child
클래스의name
을 바꿀 수 있습니다.class Child { friend class Mother; public: string name( void ); //모두가 접근 가능 protected: void setName( string newName ); //Mother가 접근 가능 };
이렇게 간단한 예제에선 잘 와 닿지 않지만 Window같이 복잡한 클래스들이 많은 경우를 생각해보면,
WindowManager
와Window
는 상속관계는 아니지만WindowManager
는Window
의 public으로 접근해서는 안 될 function/data에 접근할 수 있어야 합니다. 이런 상황에서friend
는 유용하게 쓰입니다.
댓글 입력