C++에서는 필요한 기능을 구현할때 한 곳에 몰아서 구현하지 않는다.
그 이유는 예를들어 내가 ADD함수(더하기 기능)를 main.cpp에 구현했을 경우에는 기능 하나만 구현되었기 때문에 크게 별 상관이 없겠지만.
점점 규모가 커져서 곱하기, 빼기, 나누기 등 사칙 연산들을 시작으로 추가적으로 더 필요한 기능을 하는 함수들을 main에몰아서 구현하게 되면 코드 줄이 길어질 것이다.
그렇게 되면 한 눈에 내가 어떠한 함수들을 구현했는지 알아보기도 힘들고 수정할때도 불편할 수 있다. 이러한 단점을 커버하기 위해 함수 선언을 모아놓은 헤더 파일과 그 기능들을 구현해 놓은 cpp 파일에 기능을 구현 해놓고
main에서 필요할때마다 꺼내서 사용하는 방법이 사용되는 것이다.
분할 구현의 방법은 아래와 같다.
1. 헤더파일 Func.h을 생성한뒤 구현할 함수를 선언해준다. (여기서는 ADD)
2. Func.cpp 파일을 만든 뒤 "Func.h"헤더파일 참조하여 그 안에 선언된 ADD 함수의 기능을 구현해 놓는다.
3. 그 결과 main 함수에서 Func.h 헤더파일을 include 하기만 하면 ADD함수의 기능을 사용할 수 있게 되는 것이다.
그 이유는 우리가 코드를 작성하고 컴파일을 하게되면 컴퓨터는 흩어져있던 파일들을 서로 연결해주게되는데,
이것을 링크단계라고 한다. 링크 단계에서 컴퓨터는 아래 그림처럼 동작하게 되는데
컴퓨터는 우리가 짜놓은 코드들을 나중에 하나의 실행파일 (.exe 파일 등)로 합치게 되는데
이과정에서 main() 함수에서 실행한 ADD함수가 어디있는지 찾다보니까 Func.cpp파일 안에 ADD함수가 구현이 되어있다는 것을 알수있다. 링크 단계에서 이 둘을 서로 참조를 시켜주기 때문에 그결과. Func.h 헤더 파일 자체에는 ADD함수의 기능이 구현돼있지 않아도 컴퓨터가 자동으로 Func.cpp에 기능이 구현돼있다는 사실을 알고 연결해주는 것이다.
'C++' 카테고리의 다른 글
C++ 정적 변수 (0) | 2023.11.23 |
---|---|
C++ 헤더 파일에 함수 기능을 구현해 놓지 않는 이유 (0) | 2023.11.09 |
C++ 함수 호출(메모리 영역) (0) | 2023.11.05 |
C++ 게임에서의 비트 연산 활용 (1) | 2023.11.04 |
C++ 비트 연산자 (&, |, ^, ~) (2) | 2023.11.04 |