inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

MFC Windows 프로그래밍 - 기본

그려진 도형 선택(Z-order 변경)

그려진 도형 선택(Z-order 변경)부분[9분59초경]

해결된 질문

96

석까

작성한 질문수 1

0

안녕하세요 강의 들으며 질문이 있어 글 남깁니다.

#include 말고 전방 선언인 class CMyshape를 하라고 하셨는데

내부에 참조나 포인터가 있는데 헤더를 끌고 인클로드하는것은 조금 적절치 않은 거 같다고 하셨거든요

이 부분에 대해서 추가 설명해 주실 수 있으실까요?

c++ mfc gdi sdi vc++ win32api

답변 2

0

널널한 개발자

기본적이 내용은 인프런 AI 답변을 참고하시면 되겠습니다. 거기에 하나 더 추가하자면...

경우에 따라 아예 컴파일 오류가 날 수도 있습니다. 물론 #pragma once 전처리기를 붙여주면 해결되지만 누락된 헤더의 경우 중복 선언이나 정의에 따른 오류가 날 수 있습니다. 알면 쉽게 해결할 수 있으나 모르면 답답해질 수 있습니다. 참고하시기 바랍니다. 😄

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

석까님께서 질문하신 내용은 일반적인 C++ 프로그래밍에서의 헤더 파일 관리와 관련된 것 같습니다. 우선, class CMyshape에 대한 전방 선언(forward declaration)과 #include 사용의 차이에 대해 설명드리겠습니다.

  1. 전방 선언(forward declaration):

    • 전방 선언은 클래스나 구조체의 이름만을 선언하는 방식입니다. 이는 주로 참조 또는 포인터로만 해당 클래스에 접근할 경우 사용됩니다.
    • 전방 선언을 통해 두 개의 헤더 파일이 서로를 포함해야 하는 경우의 순환 참조를 방지할 수 있습니다. 이는 컴파일 시간과 의존성을 줄이는 데 도움을 줍니다.
  2. 필요한 경우에만 #include 사용:

    • 클래스의 멤버 변수로 다른 클래스의 인스턴스를 직접 포함해야 한다면 해당 클래스의 정의가 반드시 필요하므로, 이 경우에는 #include를 사용해야 합니다.
    • 반대로, 클래스의 포인터나 참조만 사용하는 경우는 전방 선언을 통해 헤더 파일의 의존성을 최소화할 수 있습니다. 이는 컴파일 속도 향상 및 모듈성 증진에 기여합니다.

이를 통해 각 파일에서 불필요한 헤더 파일을 포함하는 것을 방지하고, 컴파일 시간을 줄이며, 보다 깔끔한 코드를 작성할 수 있습니다.

만약 해당 주제에 추가적인 이해가 필요하시다면, 아래의 링크들이 도움이 될 수 있습니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

안녕하세요~. 현재 코살코딩클럽 사이트가 접속이 안됩니다~

0

27

2

코딩살구클럽 로그인문제

0

25

3

코딩 살구 클럽 로그인 문제

0

52

2

2-J 채점관련 질문

0

40

3

sizeof는 컴파일 타임 연산자라서 CPU를 사용치 않는다

0

26

2

코딩 살구 클럽 Python 지원 가능 여부

0

53

1

살구클럽 아이디 없음 문제

0

61

1

책과 강의 질문

0

167

2

MFC로 게임 엔진 제작 질문

0

184

2

이벤트 메시지 루프의 '응답 없음'에 대하여

0

142

2

메모리 창을 어떡해 뛰우나요?

0

171

3

안녕하세요 선생님

0

120

1

토글메뉴(강사도 삽질) 10:30 질문 / pch.h 전역변수 선언 에러

0

176

2

CMainFrame과 CCreateDemoView와의 관계 (교과서 p80 그림3-3)

1

114

1

메시지 루프에서 메시지 처리 성능 비교: WinAPI vs MFC

0

280

3

커스텀 드로우에 대해서도 다루나요?

0

191

2

MainFrame 에서 LButtonDown 이벤트 처리 질문

0

173

1

윈도우 프로그래밍 UI 관련 질문입니다

0

233

2

유튜브 강의와 차이점

0

319

1

책 질문입니다.

0

286

2

mfc 내부에서 콜백 함수 구현 방법

0

402

1

수강기간 무제한인지 문의드립니다!

1

457

1

pOldPen = dc.SelectObject(); 관련 질문

0

276

1

라디오 버튼 그룹에 대해서 질문합니다.

0

313

1