C++에는 구현에서 인터페이스를 분리하기 위한 헤더 및 .ccp 파일이 있습니다. 헤더 파일은 클래스(또는 구현되는 모든 것)가 수행할 "무엇", 즉 Java의 인터페이스와 같은 클래스의 API를 선언합니다. 반면에 cpp 파일은 이러한 기능을 수행할 "방법", 즉 이러한 선언된 기능의 구현을 정의합니다.
이렇게 하면 종속성이 줄어듭니다. 헤더를 사용하는 코드는 구현에 대한 모든 세부 정보와 이를 위해 필요한 다른 클래스/헤더를 알 필요가 없습니다. 구현하려는 항목에만 집중하면 됩니다. 이렇게 하면 구현을 변경할 때 필요한 컴파일 시간과 재컴파일 양이 줄어듭니다.