Nagie's DevStory

[CPP] 24. friend 함수 본문

Programming/C++

[CPP] 24. friend 함수

Nagie 2023. 10. 21. 22:59
728x90

friend 함수는 C++에서 사용되는 조금 특별한 함수다.

클래스의 멤버 함수가 아닌데 해당 클래스의 private 멤버에게 접근할 수 있도록 권한을 부여하는 함수며

이는 곧 클래스의 캡슐화(정보은닉)를 깨버리는 결과를 가져온다.

가능하면 안 쓰는 게 베스트지만 그래도 사용법은 알고 있어야지

특정 상황에서 선택의 여지가 없을 때 문제를 해결할 수 있을 거 같아 사용 예시를 올린다.

 

#include <iostream>

class MyClass {
private:

    int privateVar;

public:

    MyClass(int value) : privateVar(value) {}

    // 클래스 외부에서 privateVar에 접근할 수 있도록 friend 함수 정의
    friend void DisplayPrivateVar(const MyClass& obj);
};

// friend 함수 정의
void DisplayPrivateVar(const MyClass& obj) {

    std::cout << "PrivateVar: " << obj.privateVar << std::endl;
}

int main() {

    MyClass myObj(42);

    // friend 함수를 호출하여 privateVar에 접근
    DisplayPrivateVar(myObj);
}

 

728x90
Comments