8.12 친구 함수와 클래스 friend
#include <iostream>
using namespace std;
class A
{
private:
int m_value = 1;
friend void doSomething(A& a);
};
void doSomething(A& a)
{
cout << a.m_value << "\n"; // class의 private에 접근하고 싶다!
}
int main()
{
A a;
doSomething(a);
return 0;
}
#include <iostream>
using namespace std;
class B; // forward declaration 자주 사용하지는 않음.
class A
{
private:
int m_value = 1;
friend void doSomething(A& a, B& b);
};
class B
{
private:
int m_value = 2;
friend void doSomething(A& a, B& b);
};
void doSomething(A& a, B& b)
{
cout << a.m_value << " " << b.m_value << "\n"; // class A,B와 friend일 경우 class A에서 class B의 정보를 얻지 못하므로
// 전방선언해준다.
}
int main()
{
A a;
doSomething(a);
return 0;
}