본문 바로가기

Language/C++

Friend 키워드

#include <iostream.h>

class Counter
{
private:
    int val;
public:
    Counter()
    {
        val = 0;
    }
    void Print()
    {
        cout<<val<<endl;
    }

    friend void SetX(Counter& c, int val);//friend 선언.
    //만일 friend 가 없으면 멤버함수가 된다.
};

void SetX(Counter& c, int val)//전역 함수.
{
    c.val = val;//friend로 허용이 된 클래스의 private 영역의 접근이 가능하다
    
}

int main()
{
    Counter cnt;
    cnt.Print();
}
friend 는 함수 또는 클래스 단위로 private 영역의 접근을 허용한다~