friend 클래스는 friend로 선언된 다른 클래스의 private 및 protected 멤버에 접근할 수 있음
특정 상황에서 클래스 내에 접근하지 못하도록 private 제한을 두었는데, 필요의 경우 해당 클래스나 함수에서 접근 가능하도록 사용하는 것이 friend 클래스 및 함수.
코드 예시
#include <iostream>
using namespace std;
class People{
private:
string name;
public:
People(string name) {this->name = name;} //생성자
friend void sayName(People p); //friend함수
};
void sayName(People p) {
//friend 함수이므로
//접근 제어 지시자의 영향을 받지않고
//private 멤버에 직접 접근이 가능
cout << p.name << endl;
}
void main() {
People p("박예진");
sayName(p);
}