• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

friend 전방선언 관련 질문

21.11.25 17:39 작성 조회수 267

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

안소님의 프로필

안소

2021.11.25

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

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