프렌드(friend) 사용법 (함수, 클래스) 총정리
1. 프렌드 함수 (Friend Function)
프렌드 함수는 클래스의 멤버 함수가 아니지만, 해당 클래스의 private 멤버에 접근할 수 있는 함수입니다. 프렌드 함수를 선언하려면 함수 원형 앞에 friend
키워드를 사용하고, 클래스의 선언 내부에 해당 함수를 정의해야 합니다.
프렌드 함수 선언 예시:
class MyClass {
private:
int privateMember;
public:
friend void friendFunction(MyClass obj); // 프렌드 함수 선언
};
// 프렌드 함수 정의
void friendFunction(MyClass obj) {
obj.privateMember = 10; // MyClass의 private 멤버에 접근
}
2. 프렌드 클래스 (Friend Class)
프렌드 클래스는 한 클래스가 다른 클래스의 private 멤버에 접근할 수 있는 클래스입니다. 프렌드 클래스를 선언하려면 friend
키워드를 사용하여 선언하고자 하는 클래스를 지정해야 합니다.
프렌드 클래스 선언 예시:
class MyClass {
private:
int privateMember;
public:
friend class FriendClass; // 프렌드 클래스 선언
};
class FriendClass {
public:
void accessPrivateMember(MyClass obj) {
obj.privateMember = 10; // MyClass의 private 멤버에 접근
}
};
프렌드 함수와 프렌드 클래스의 고려사항
- 프렌드 함수와 프렌드 클래스는 해당 클래스의 private 멤버에 접근할 수 있는 권한을 가지므로, 적절한 사용과 접근 제한을 고려해야 합니다.
- 클래스의 캡슐화와 정보 은닉 원칙에 위배될 수 있으므로, 필요한 경우에만 사용하는 것이 좋습니다.
- 프렌드 함수나 프렌드 클래스의 경우, 객체 내부의 private 멤버에 자유롭게 접근할 수 있기 때문에 유지보수와 관리에 불편을 초래할 수 있습니다. 필요한 경우에만 사용하고, 신중하게 결정해야 합니다.
프렌드 함수와 프렌드 클래스는 C++에서 클래스의 정보 은닉을 유지하면서 특정 함수나 클래스에 접근 권한을 부여하기 위해 사용됩니다. 하지만 사용에 주의를 기울여야 하며, 적절한 사용법을 숙지하고 사용하는 것이 중요합니다.
댓글