개발공부/C++

키워드 : friend

dyson_ok 2019. 10. 23. 12:20
#include <iostream>

using namespace std;

class B;//forward declalation

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 << endl;
}

int main()
{
	A a;
	B b;
	doSomething(a, b);
	return 0;
}

전방선언(forward declaration)을 사용하면 해당 코드가 어디있는지 찾아야 하는 불편함이 있지만 다소 복잡한 문제를 다루다 보면 종종 나올 수 있는 코딩 기법이다.