C++ tách file header và .cpp để tách biệt giao diện (interface) và triển khai (implementation). File header khai báo "cái gì" một lớp sẽ làm (API), giống interface trong Java. File .cpp định nghĩa "như thế nào" thực hiện các tính năng đó.
Điều này giảm phụ thuộc. Code dùng header không cần biết chi tiết triển khai và các lớp/header khác chỉ cần cho triển khai. Nó chỉ tập trung vào việc mình triển khai. Giảm thời gian biên dịch và lượng biên dịch lại khi thay đổi triển khai.