일상 코딩
[C++/8.12] friend function and class 본문
728x90
1. forward declaration 전방선언
#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 << endl;
}
int main()
{
A a;
B b;
doSomething(a, b);
return 0;
}
2. member function 선선언 및 body 후 선언.
#include<iostream>
using namespace std;
class A; // forward declaration (전방 선언)
class B
{
private:
int m_value = 2;
public:
// 선 선언
void doSomething(A &a);
};
class A
{
private:
int m_value = 1;
friend void B::doSomething(A &a);
};
// body 후 선언
void B::doSomething(A &a)
{
cout << a.m_value << endl;
}
int main()
{
A a;
B b;
b.doSomething(a);
return 0;
}
728x90
'C++ > 따배C++ 08강 객체지향 기초' 카테고리의 다른 글
[C++/8.14] 클래스 안에 포함된 자료형 Nested types (0) | 2021.10.26 |
---|---|
[C++/8.13] 익명객체 (0) | 2021.10.26 |
[C++/8.11] 클래스와 static function and inner class, 정적 함수와 내부 함수 (0) | 2021.10.25 |
[C++/8.10] 클래스와 static 변수 variable (0) | 2021.10.23 |
[C++/8.9] 클래스와 const, reference(&) (0) | 2021.10.23 |