2010-01-02 3 views
8

.cpp와 .h 파일의 차이점은 궁금합니다. 헤더 파일 (.h)을 사용하려면 무엇이 필요하며 cpp 파일을 사용하려면 어떻게해야합니까?CPP | .h 파일 (C++)

+1

제안 사항으로 C 언어 헤더 파일에는'h' 파일을 사용하고 C++ 언어 파일에는'hpp' 또는'hxx'를 사용하십시오. C++ 소스 파일에는 C 언어 헤더 파일이 포함될 수 있지만 C 소스 파일에는 C++ 헤더 파일이 포함될 수 없습니다. 따라서 헤더 파일에 C++ 고유의 선언이나 정의가 포함되어 있다면'hpp' 또는'hxx' 확장자로 이름을 지정하십시오. –

답변

13
일반적으로

, 그것은 정말있을 수 적은 일반적으로 많은 :

.H (헤더) 파일을 여러 번 사용하는 것들의 선언을 위해, 그리고 다른 파일 #include D입니다

통화 당 (구현) 파일은 다른 모든 것들에 대한, 그리고 거의 결코 #include D

+1

그래, 내가이 권리를 가지고 있는지보기 위해서; InventoryClass라는 클래스가 있다면 그 파일을 .h 파일에 넣은 다음 .cpp 파일 내에서 해당 메소드를 호출합니다. 답장을 보내 주셔서 감사합니다. :) –

+2

당신은 일반적으로 클래스 선언을 넣을 것입니다 (예 : 저는이 필드, 메소드 등을 헤더 파일에 가지고 있습니다). 각 메소드는 cpp 파일에 구현됩니다. –

+0

@baeltazor 예, 그 아이디어입니다. – James

2

규칙 상 .h 파일은 #include입니다. CPP 파일은 별도의 개체 파일로 컴파일 한 다음 링커에 전달하기 위해 프로젝트에 추가하는 파일입니다.

+0

파벨 감사합니다. –

1

.H 파일 헤더 파일이라고합니다. 당신은 보통 당신의 인터페이스를 거기에 놓습니다 (당신이 공개되기를 원하는 것들). cpp 파일은 실제로 인터페이스를 구현하는 곳입니다.

4

기술적으로 차이는 없습니다. C++을 사용하면 모든 형식의 파일에 코드를 넣을 수 있으며 작동해야합니다.

규칙에 따라 (기본적으로 API를 구성하는) 선언을 .h 파일에 넣고 "헤더"라고합니다. .cpp 파일은 코드의 실제 "내장"(구현 세부 정보)을위한 파일입니다.

일반적으로 프로젝트의 다른 파일 (라이브러리를 만드는 경우 다른 프로젝트)에 의해 헤더 파일이 #include에 포함되므로 컴파일러는 컴파일하는 데 필요한 인터페이스를 얻을 수 있습니다. .cpp 파일의 구현은 대개 구현되어 .h 파일 당 구현을 "채우는".cpp 파일이 하나 있습니다.

1

먼저 두 가지 모두 C++ 컴파일러 또는 전처리 기용 코드가 포함 된 텍스트 파일입니다. 시스템에 관한 한 차이는 없습니다.

일반적으로 다른 파일 이름 확장명은 파일의 내용을 나타내는 데 사용됩니다. C 프로그램에서 .h 및 .c 파일을 보는 경향이 있지만 C++에서는 .hpp와 .cpp가 동일한 목적을 제공합니다.

헤더 파일이라고하는 첫 번째 그룹 .h 및 .hpp 파일에는 상수 및 함수 프로토 타입 정의와 같이 대부분 실행되지 않는 코드가 들어 있습니다. 그것들은 #include 지시어를 통해 프로그램에 추가되며 문제가되는 프로그램이나 라이브러리뿐만 아니라 인터페이스 포인트와 값을 정의하는 계약을 선언하는 다른 프로그램이나 라이브러리에서도 사용됩니다. 또한 다른 운영 체제 용으로 컴파일 할 때 변경 될 수있는 메타 데이터를 설정하는 데 사용됩니다.

두 번째 그룹 .c 및 .cpp 파일에는 라이브러리 또는 프로그램의 코드 실행 부분이 포함되어 있습니다.

0

것은 당신이 뭔가를 #include를 할 때

, 그것은 다소간 삽입은 전체가 포함 명령을 사용하여 하나에 파일을 포함, 만약 내가 틀렸다면 정정 해줘하지만; 즉, "genericTools.cpp"에 "macros.h"를 포함 시키면 "macros.h"의 전체 내용이 해당 지점의 "genericTools.cpp"에 배치됩니다. 이러한 이유로 동일한 파일을 두 번 포함하지 않으려면 "#pragma once"또는 다른 보호 기능을 사용해야합니다.

참고로 템플릿 기반 코드는 다른 곳에 포함시킬 파일에 완전히 있어야합니다.(나는 이것을 잘 모름 - 포함 된 파일에서 템플릿 특수화를 생략하고 일반 함수처럼 연결할 수 있습니까?)

0

구현 파일 인 .cpp은 실제 프로그램이나 코드입니다. 코드에서 다른 inbuilt 함수를 사용해야하는 경우 .h 파일 인 헤더 파일을 포함해야합니다.

이러한 .h 파일에는 우리가 사용하는 inbuilt 함수의 실제 코드가 들어 있으므로 간단히 해당 함수를 호출 할 수 있습니다.

따라서 코드를 컴파일하는 동안 코드가 컴파일 될뿐만 아니라 (코드) 함수 (.h 파일에 포함되어 있기 때문에)가 실제로 코딩 한 것보다 많은 수의 컴파일 된 코드를 볼 수 있습니다)도 컴파일됩니다.