linking

    [C++ Primer Plus] 9. Memory Models and Namespaces

    Seperate Compilation 1챕터에서 말했듯, C++는 각 파일마다 컴파일을 따로(.c → .o)할 수 있다. 이런 방식덕분에 소스코드 하나를 수정하면 그거만 컴파일하고 링킹을 해서 실행파일을 만들 수 있다. Unix나 Linux의 make가 이런 관리를 도와준다. 한 소스 코드의 내용을 나눠야 한다고 생각해보자. 예를 들어, 클래스 구현부와 main()을 나누는 것이다. 이런 상황에서는 main에서 클래스 구현부를 알 필요가 있다. 이런 상황을 해결해주는 것이 #include 기능이다. 즉, 총 3개의 파일로 나눠질 것이다. 클래스의 정의와 메소드의 프로토타입을 담은 .hpp 파일 클래스 구현 코드를 담은 .cpp 파일 클래스 메소드를 사용하는 .cpp 파일 헤더 파일에는 주로 다음의 내용을..