강의

멘토링

로드맵

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

Learn님의 프로필 이미지
Learn

작성한 질문수

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

8.12 친구 함수와 클래스 friend

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

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

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

Learn님의 프로필 이미지
Learn

작성한 질문수

질문하기