공부/C++

Friend 키워드란?

셩잇님 2023. 3. 4. 22:12
반응형

 

 

1. Friend 키워드란?

C++에서 friend 키워드는 클래스의 멤버 함수나 변수에 대한 접근 권한을 다른 클래스나 함수에 부여할 때 사용됩니다. 즉, friend 키워드를 사용하면 해당 클래스의 private 멤버에 접근할 수 있는 권한을 부여할 수 있습니다.

 

2. Friend 키워드의 사용법

friend 키워드는 함수 및 클래스 두 가지 방법으로 사용할 수 있습니다.

1. Friend functions : Friend functions은 클래스의 개인 및 보호 멤버에 대한 액세스 권한이 부여된 비회원 기능입니다. 함수를 클래스의 친구로 선언하려면 클래스 정의에서 함수 선언 전에 friend 키워드를 사용해야 합니다.

class MyClass {
    private:
        int x;
    public:
        friend void myFunction(MyClass& obj);
};

void myFunction(MyClass& obj) {
    obj.x = 10; // Access MyClass private member x
}

예를 들어 위 예제에서 myFunction은 MyClass의 친구로 선언되어 MyClass의 비공개 멤버 x에 액세스할 수 있습니다.

 

2. Friend class : friend class는 클래스의 private 및 protected 멤버에 대한 액세스 권한이 부여된 비멤버 클래스입니다. 클래스를 클래스의 friend로 선언하려면 클래스 선언 전에 클래스 정의에서 friend 키워드를 사용해야 합니다.

class MyClass {
    private:
        int x;
    public:
        friend class MyFriendClass;
};

class MyFriendClass {
    public:
        void myFunction(MyClass& obj) {
            obj.x = 10; // Access MyClass private member x
        }
};

이 예에서 MyFriendClass는 MyClass의 친구로 선언되어 MyClass의 개인 멤버 x에 액세스할 수 있습니다.

 

3. 결론
friend 키워드를 사용하면 캡슐화가 깨지고 코드를 유지하기가 더 어려워질 수 있다는 점에 유의해야 합니다. 따라서 필요한 경우에만 신중하게 사용해야 합니다.

 

 

 

반응형