본문 바로가기

프로그래밍 언어/C++

왜 헤더파일에서 선언과 정의를 따로 해야되는가?

오늘 올린 04-1, 04-2 문제 코드는 모두 헤더파일에서 선언을 하고 cpp 파일을 만들어서 따로 정의를 했다.

책에서 이를 권장하는데 내가 구체적인 이유를 알지 못해서 습관을 들일 필요를 알고싶어 검색해보았다.

 

그 이유로는

  1. 빌드시간을 개선시킬 수 있다.
  2. 정의 소스없이 코드를 연결시킬수 있다.
  3. 모든 함수를 'inline'으로 만들지 않을 수 있다.

#include를 통해서 가져온다는 것은 모든 코드를 복사 붙여넣기 하는 것과 똑같이 동작된다고 한다.

만약 모든 코드가 헤더파일에 있다면 소규모 프로젝트에서는 상관이 없지만 규모가 점점 커질 수록 어마어마한 양의 코드를 복붙하는 것과 같다. 이에 빌드시간이 오래걸리게 된다.

 

프로그램을 만들때 함수를 정의하지 않고 이러한 기능이 있는 함수를 만들 것이라고 계획해두고 전체적인 코드를 짤 수 있다.

 

@ 3번 이유는 1번이유와 왜 다른지 아직 모르겠다. 2022/03/03

 

출처: https://stackoverflow.com/questions/1305947/why-does-c-need-a-separate-header-file

 

Why does C++ need a separate header file?

I've never really understood why C++ needs a separate header file with the same functions as in the .cpp file. It makes creating classes and refactoring them very difficult, and it adds unnecessary...

stackoverflow.com

 

'프로그래밍 언어 > C++' 카테고리의 다른 글

파일 입력 스트림  (0) 2022.03.10
파일 입출력  (0) 2022.03.10
String 클래스  (0) 2022.03.09
클래스와 구조체에 관한 고찰 in C++  (0) 2022.03.04
포인터와 참조자에 관한 고찰 in C++  (0) 2022.03.04