헤더파일의 적절한 사용법?

ofkorea의 이미지

안녕하세요

어러분들이 코딩 하실때 헤더파일을 어떻게 사용하고 있는지 궁금합니다.

C,C++ 에 대해서 질문드리는 것이구요

예를 들어서 어떤 define,macro는 소스파일에 넣고
어떤 define,macro는 헤더파일에 넣는지
또 여러 소스파일에서 공유하는 헤더파일의 성격이라던지
뭐 기타등등..

질문이 좀 애매모호 할수도 있겠습니다만
의견을 적어주시면 고맙겠습니다.

cedar의 이미지

ofkorea wrote:
예를 들어서 어떤 define,macro는 소스파일에 넣고
어떤 define,macro는 헤더파일에 넣는지

위의 두 가지는 모두 헤더 파일에 넣어야 합니다.

그외에 인라인 함수 정의나
함수 원형이나 전역 변수 선언, 클래스 선언
(주의: 정의(definition)이 아니라 선언(declaration)입니다.)
템플릿 함수나 템플릿 클래스 정의도 전부 헤더에 넣으세요.

akbar의 이미지

cedar wrote:

그외에 템플릿 함수나 템플릿 클래스 정의도 전부 헤더에 넣으세요.

부연하면
템플릿 클래스 정의는 전통적인 방식을 써서
Template.H Template.cpp 로 나눌 수도 있지만
템플릿 클래스에 대해서만큼은 상당히 부적절하며
억지로 .H .cpp 파일로 나누지 마세요.
모두 헤더에 넣으세요