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 키워드를 적절히 활용하면 클래스 간의 유용한 관계를 형성할 수 있습니다.
'IT > c++' 카테고리의 다른 글
C++ const 객체 및 키워드 (0) | 2023.08.04 |
---|---|
C++ Static: 정적 멤버 변수와 정적 멤버 함수 (0) | 2023.08.03 |
C++ 깊은복사와 얕은복사: 객체 복사의 이해와 활용 (0) | 2023.08.03 |
C++ Explicit: 명시적 변환과 안전성을 위한 사용법 (0) | 2023.08.03 |
C++ 복사생성자: 객체 복사의 핵심 (0) | 2023.08.03 |
댓글