2013-05-29 4 views
3

헤더 파일은 .cpp 또는 .h 파일에 어디에 포함해야합니까?헤더 파일은 .cpp 또는 .h 파일에 어디에 포함해야합니까?

나는 지금 프로젝트를 진행하고 있으며, 한 번에 모든 것을 수행하기 위해 깨끗한 방법을 찾으려고합니다. 현재 상태는 .cpp와 .h 파일에 모두 입니다. 예를 들어, 때때로 someFile.h에 somechile.cpp에 # 이 포함될 수도 있고 someFile.cpp에 때때로 포함될 수도 있습니다.

내가 포함 된 곳에서 중요한 점은 무엇일까? 두 가지 방법으로 작동하지만 함정이 있습니까?

감사합니다.

+0

대답은 예입니다. –

+0

일반적으로 .h 파일에서'struct' /'class' 타입 선언을 사용하십시오. 포인터 타입 만 필요합니다. .cpp에 포함을 수행하십시오. 이것은 순환 포함 문제를 방지하는 데 도움이됩니다. –

+0

@HotLicks는 순환 포함에 대한 가드 포함이 좋지 않습니까? –

답변

2

현재 파일의 코드에 필요한 헤더를 포함합니다. .h 또는 .cpp 파일인지 여부에 관계없이

+0

downvote에 대한 이유는 무엇입니까? – GuLearn

+0

실제로 컴파일 속도면에서 중요합니다. – zakinster

+0

헤더의 코드에 의해 헤더가 * 필수 * 일 때 .h 파일에 헤더 파일을 포함하는 것을 피할 수있는 방법이 있습니까? – GuLearn

7

일반적으로 이러한 헤더에 필요한 .h 파일에만 헤더를 포함해야합니다. 즉, 유형이 헤더에서 사용되고 다른 곳에서 선언 된 경우 해당 헤더가 포함되어야합니다. 그렇지 않으면 .cpp 또는 .c 파일에만 헤더를 항상 포함하십시오. 이렇게하면 컴파일 시간이 최소한으로 유지되고 필요한 파일을 더 잘 보여줍니다.

예외적으로 매우 일반적으로 사용되는 헤더를 표준화 된 .h 파일 (흔히 Stdafx.h라고 함)에 포함시킨 다음 미리 컴파일 된 헤더를 사용할 수 있습니다.

관련 문제