본문 바로가기

개발공부/C++

키워드 : friend

#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