- 정의
friend 클래스란 friend로 선언된 다른 클래스의 private 및 protected 멤버에 접근할 수 있게 해줍니다.
- 사용방법
사용방법은 friend 키워드를 사용하여 클래스나 함수를 명시 해주는 것입니다.
#include<iostream>
using namespace std;
class example {
private:
int num;
public:
example() {
num = 1;
}
example(int num)
:num{ num } {};
void printNum() {
cout << num << endl;
}
// friend 선언 => setNum()함수는 이제 example의 private, protected 변수 사용 가능
friend void setNum(example);
};
void setNum(example x) {
// example의 private변수인 num을 출력 가능
cout << x.num << endl;
}
int main() {
example Ex(5);
setNum(Ex);
return 0;
}
외부 함수 setX()를 example 클래스에 friend로 선언
class example{
.....
friend void setX(example);
};
RectManager 클래스의 setX() 멤버 함수를 example 클래스에 friend로 선언
class example{
.....
friend void RectManager::setX(example);
};
RectManager 클래스의 모든 함수를 example 클래스에 friend로 선언
class example{
.....
friend RectManager;
};
참조자를 사용이 가능하다. 아래가 그 예시 코드이다. 아래 결과 값과 같이 참조를 통해 연산이 가능하다.
#include<iostream>
using namespace std;
class example {
private:
int num;
public:
example() {
num = 1;
}
example(int num)
:num{ num } {};
void printNum() {
cout << num << endl;
}
friend void setNum(example &);
};
void setNum(example &x) {
x.num++;
cout << x.num << endl;
}
int main() {
example Ex(5);
setNum(Ex);
setNum(Ex);
return 0;
}