프로그래밍/MFC

friend 키워드

에어버스 2016. 6. 22. 18:06

클래스 멤버 변수는 private 또는 protected 로 설정하여 보호하면 내부 함수 외에 다른 외부 함수에서는 접근이 안되어 내부 함수로 Get/Set 함수를 매번 만들어야 한다.

개발 중에 이것은 불편함으로 클래스 안에 friend 선언해주면 접근이 가능해진다.

class A
{
    friend class B; // B클래스 모든 함수가 접근 가능
    friend void B::b(); // b() 함수만 접근 가능 // 컴파일 에러 남????????
private:
    int a;
};

class B
{
public:
    void b();
};

B::b() 는 A 클래스의 멤버 변수인 a에 접근이 가능해진다.

중요> 최종 버전에는 향후 유지 보수를 위해 설계를 수정하고 제거하는것이 바람직하다.