C++ 공부를 하다 문득 궁금해졌다.
클래스 분리가 없는 자바와는 다르게, C++에서는 클래스를 .h 헤더파일과 .cpp 소스파일로 나누어 구현한다.
좀 더 정확하게 말하면 클래스를 정의부와 구현부로 나누어 작성하는 것이다.
보통 소스파일은 헤더파일을 include하여 메소드를 구현하게 되는데, 이 떄 궁금한게 생겼다.
외부 클래스나 라이브러리를 써야하는 상황이라면, 어느 곳에서 include하는게 맞을까?
.cpp 파일에 쓰면 당연히 상관이 없고, .h 파일에 써도 어차피 헤더파이을 include 하기 때문에 정상적으로 작동한다.
앞서 몇 시간동안 공부를 하다보니 머리가 둔해져서 이렇다 할 결론이 안 나오더라. 결국 궁금해서 찾아보았다.
그렇게, 2009년에 나와 같은 질문이 올라온 것을 발견한다. 그 댓글 중에 읽고서 바로 납득된 좋은 설명이 있어 가져왔다.

결론적으로 얘기하면, 헤더파일에 불필요한 include 문을 작성했을 경우, 다른 클래스에서 이 헤더파일을 include 할 시, 불필요한 파일까지 같이 include 하게 된다. 따라서, 헤더파일에서 꼭 필요한 파일만을 include 하고 나머지는 .cpp 파일에서 가져오는 것이 바람직하다!
시간이 10년 20년 지나도 초심자들은 계속해서 같은 질문을 하나보다.
알면 알수록 재밌다.
'개발 > 짧 지식' 카테고리의 다른 글
JPQL은 쉽게 깨질 수 있다. 패키지 구조를 변경하며 (0) | 2025.03.09 |
---|---|
세션은 어디에 저장될까? (HttpSession, Cookie and Session) (0) | 2023.08.08 |
콜백 메소드(Callback Method)는 뭘까. (0) | 2022.11.16 |
Android Lifecycle (0) | 2022.11.14 |
댓글