2014-04-04 1 views
0

헤더 파일에 구현 파일에 포함 된 모든 함수의 프로토 타입이 모두 들어 있다는 것을 알고 있습니다. 그러나 진정한 목적은 무엇입니까? 다른 프로그램이 클래스를 호출 할 때 헤더 파일의 정보 만 수신하고 구현이 숨겨져 있기 때문입니까? 이 진정한 목적은 무엇입니까?C++ 헤더 파일을 사용해야하는 이유는 무엇입니까?

+0

헤더에는 구현 파일 외부에서 액세스 할 수있는 기능의 프로토 타입 만 포함해야합니다. 또한 이러한 기능을 사용하는 데 필요한 유형 정보도 들어 있습니다. 헤더 파일은 시스템을 함께 묶는 접착제입니다. 그들은 소비자와 생산자가 일치하도록 보장합니다. 또한 표준 기능 중 하나를 사용해야 할 때마다 표준 헤더에 모든 정보를 입력해야하므로 짜증이납니다. –

+0

BTW, 나인 경우 그 스레드에서 다른 대답을 수락했을 것입니다. 나는 헤더 파일없이 프로젝트를 다시 컴파일하는 것을 상상조차 할 수 없다.) – raina77ow

+0

@ raina77ow가 동의했다. 거기에 더 높은 레벨이있다. 그런 다음 정말로 IMHO가 왜 결과로 다시 컴파일 할 필요가 없는지에 대해 더 잘 설명한다. 속임수를 쓰지 않아도된다. 이번 주에이 정확한 질문에 대해 이것이 제 3의 것과 같다고 생각하십시오. – UpAndAdam

답변

1

누군가가 당신에게 도서관을 줄 때, 그들은 항상 당신에게 코드를 제공하지 않는다는 것입니다. 그리고 솔직히 당신은 그것에 대해 알고 싶지 않습니다. 헤더 파일에서 얻을 수있는 함수 프로토 타입 및 데이터 구조를 알아야합니다. 그런 다음 라이브러리에 링크합니다. 그것은이 있고 당신에게 (또는 .dll의 만약 .so를, .A 중요하지 않음)

을 나는 도서관 libfoo를 게시 : 여기

당신을 위해 몇 가지 의미가 도움이 될 수도 예입니다 문제를 해결하고 그것을 사용하고자하는 좋은 함수와 데이터 유형이 많이 있습니다. 헤더 파일을 제공하지 않았다면, 얼마나 큰 데이터 구조가 있는지/어떤 기능 시그니처를 찾아야하는지 알 필요가있을 때 코드를 어떻게 컴파일 할 수 있을까요? 코드 작성 방법을 어떻게 알았습니까?

라이브러리는 링크 될 때까지 참조되지 않으며 컴파일은 해당 시점에 이미 완료되었습니다.

관련 문제