클래스 정의할 때 .h? .hpp? 어느 걸 써야하죠?


저는 보통 클래스 정의할 때 .h에 했는데요 boost libaray에서는 다들 .hpp에 클래스를 정의해놓더라구요?

제가 그렇게 써본 적이 없어서 그런지 이상하게 보이던데 .hpp를 쓰면 무슨 장점이라도 있나요?


조회수 295


1 답변


좋아요
0
싫어요
채택취소하기

C의 헤더파일은 .h, C++의 헤더파일은 .hpp로 하시면 됩니다.

CC++ 헤더 이름을 다르게 쓰는 이유는 다음과 같습니다.

  • CC++ 코드의 포맷을 다르게 쓰는 경우, editor에서 파일 형식에 따라 설정을 달리해 놓으면 editor가 자동으로 포맷을 맞춰줌
  • libraray가 C로 구현돼 있고 wrapperC++로 구현된 경우, header는 보통 이름이 비슷하기 때문에 파일 확장자로 구분해서 쓸 수 있음.(Feature.h / Feature.hpp)
  • 프로젝트가 C++버전에서 더 적절한 기능을 지원하는데 C 버전에서 쓰고 있는 경우, 헤더 이름을 언어(C/C++)에 따라 다르게 설정하면 C헤더를 찾아내서 C++ 버전으로 바꾸는 게 쉬움.

CC++은 다른 언어고, 둘을 같이 쓰는 건 위험하기 때문에 권장하지 않는 방법입니다. 따라서 파일 이름을 다르게 지음으로써 어떤 언어가 쓰였는지 구분해 주는 것입니다.

  • 2016년 01월 13일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close