반응형
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 키워드를 사용하면 캡슐화가 깨지고 코드를 유지하기가 더 어려워질 수 있다는 점에 유의해야 합니다. 따라서 필요한 경우에만 신중하게 사용해야 합니다.
반응형
'공부 > C++' 카테고리의 다른 글
C++ 언어의 장점은 무엇일까? (0) | 2023.03.24 |
---|---|
C언어와 C++언어의 차이점 (0) | 2023.03.24 |
모던(Modern) C++ 이란 무엇인가? (0) | 2023.02.25 |
벡터(Vector) 재할당 속도 줄이는 법 (0) | 2023.02.07 |
벡터에서 push_back을 이용할 때 메모리가 왜 2배씩 늘어나는가? (0) | 2023.02.07 |