강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

Learn님의 프로필 이미지
Learn

작성한 질문수

홍정모의 따라하며 배우는 C++

8.12 친구 함수와 클래스 friend

friend 전방선언 관련 질문

작성

·

419

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

class 를 friend 로 하는데에 있어선 전방선언이 필요 없는 것 같네요.

이유에 대해선 링크 참고해주세요! https://www.ostack.cn/?qa=834163/

Learn님의 프로필 이미지
Learn

작성한 질문수

질문하기