인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

hellobeen님의 프로필 이미지
hellobeen

작성한 질문수

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문

include

작성

·

140

0

안녕하세요. 강의 잘 듣고 있습니다.

include 관련하여, 어느 경우에 .h에 include 하는지 .cpp에 include 하는지 기준이 너무 모호하여 질문 남깁니다.

답변 1

1

Rookiss님의 프로필 이미지
Rookiss
지식공유자

네 원래 엄~~청 모호하고 헷갈리는 부분입니다.
정말 깊이 이해를 하려면 C++ 컴파일러 원리에 대해 알아야 하니
처음에는 간단하게 느낌적인 느낌으로 파악을 하시는게 좋습니다.

버그를 계속 내보면서 헤딩하다 보면 감이 오는데,
일단 다음과 같은 공식을 적용해보세요:

1) 기본적으로 .h 파일에서 다른 헤더 파일을 include하는 것은 피하고 cpp에서만 추가합니다.
--> 헤더 파일에서는 정의만 하고, 실제 코드 구현은 cpp에 하도록 노력
2) 그런데 그러면 간혹 해결 안 되는 에러가 발생합니다.
3) class Child : public Parent과 같은 상속이라면? -> 어쩔 수 없이 Child.h에 #include "Parent.h"
4) 그 외, 전방선언으로 대체가 가능한지 확인.
ex) class Child 내부에 멤서 변수로 Inventory _inven;을 사용하던 것을,
      class Inventory; 전방선언 후 포인터 Inventory* _inven 로 변경 
5) 뭘해도 해결이 안되면 눈물을 흘리며 헤더에 다른 헤더 추가

hellobeen님의 프로필 이미지
hellobeen

작성한 질문수

질문하기