본문 바로가기
IT/c++

C++ Friend: 클래스 간 우정 맺기

by 뉴코딩맨 2023. 8. 3.
C++에서는 클래스 간에 특별한 관계를 형성할 수 있도록 "friend" 키워드를 제공합니다. 이 키워드를 사용하면 클래스의 멤버 함수가 다른 클래스의 private 멤버에 접근할 수 있게 됩니다. C++의 "friend" 키워드에 대해 설명하고, 언제 사용하는지에 대해 알아보겠습니다.
 
 

1. Friend 키워드란?

"Friend" 키워드는 클래스에서 다른 클래스의 private 멤버에 접근할 수 있도록 해주는 특별한 키워드입니다. 이를 통해 두 클래스 간에 우정을 형성하여 데이터를 공유하고 특정 함수가 접근할 수 있도록 지정할 수 있습니다.
 

2. Friend 함수 정의하기

Friend 함수는 다른 클래스의 private 멤버에 접근할 수 있는 함수로, 해당 함수를 선언하는 클래스를 "friend"로 지정해야 합니다. friend 함수는 해당 클래스의 멤버 함수가 아니므로 클래스 내부에서 정의하지 않아야 합니다.
 

3. Friend 클래스 정의하기

Friend 클래스는 다른 클래스의 private 멤버에 접근할 수 있는 클래스로, 해당 클래스를 friend로 지정해야 합니다. Friend 클래스는 해당 클래스의 모든 멤버에 접근할 수 있으며, 이를 통해 데이터를 공유하거나 특정 클래스와의 우정을 형성할 수 있습니다.
 

4. Friend의 활용 예제

 

 

#include <iostream>
using namespace std;

class B; // B 클래스가 미리 선언되어야 함

class A {
private:
    int numA;

public:
    A() : numA(12) {}

    // B 클래스를 friend로 지정
    friend class B;

    void display() {
        cout << "numA: " << numA << endl;
    }
};

class B {
private:
    int numB;

public:
    B() : numB(5) {}

    void display(A& a) {
        // B 클래스는 A 클래스의 private 멤버에 접근 가능
        cout << "numB: " << numB << ", numA: " << a.numA << endl;
    }
};

int main() {
    A objA;
    B objB;
    objB.display(objA);
    return 0;
}

 

5. Friend의 장점과 주의사항

Friend는 클래스 간에 우정을 형성하고 데이터를 공유할 수 있는 유용한 기능입니다. 그러나 과도한 사용은 의존성을 높일 수 있으므로 신중하게 사용해야 합니다.
 

6. 정리

이 글에서는 C++에서 클래스 간에 우정을 형성하고 private 멤버에 접근하기 위해 사용하는 "friend" 키워드에 대해 알아보았습니다. Friend 키워드를 적절히 활용하면 클래스 간의 유용한 관계를 형성할 수 있습니다.
 

댓글