#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)을 사용하면 해당 코드가 어디있는지 찾아야 하는 불편함이 있지만 다소 복잡한 문제를 다루다 보면 종종 나올 수 있는 코딩 기법이다.
'개발공부 > C++' 카테고리의 다른 글
얕은 복사와 깊은 복사 (0) | 2019.10.23 |
---|---|
형변환을 오버로딩하기 (0) | 2019.10.23 |
정적 멤버 (0) | 2019.10.23 |
다양한 반환 값들 (0) | 2019.10.22 |
다중포인터와 동적 다차원 배열 (0) | 2019.10.22 |