인프런 커뮤니티 질문&답변
friend 전방선언 관련 질문
작성
·
423
0
안녕하세요. 다음은 6:38 초에 다룬 코드입니다.
#include <iostream>
class B; // forward declaration
class A {
private:
int m_value{ 1 };
friend class B;
};
class B {
private:
int m_value{ 2 };
public:
void doSomething(A& a) {
std::cout << a.m_value << '\n';
}
};
int main() {
A a;
B b;
b.doSomething(a);
return 0;
}
여기서 forward declaration (class B;) 을 빼도 코드는 정상 작동합니다(적어도 MSVS 2019에서는 오류가 없네요). 이유가 궁금합니다. 감사합니다.
퀴즈
객체 지향 프로그래밍에서 클래스/객체의 주된 역할은 무엇일까요?
프로그램 실행 속도를 최적화하는 것
데이터를 처리하는 함수와 해당 데이터를 하나로 묶는 것
메모리 할당 및 해제를 자동화하는 것
다른 프로그래밍 언어로 코드를 변환하는 것
답변 1
1





