C++ แยก header (.h/.hpp) และ implementation (.cpp) เพื่อ แยก interface (อินเตอร์เฟซ) ออกจาก implementation (การติดตั้ง)
- Header files: ประกาศ "ว่าจะทำอะไร" - API ของคลาส คล้าย interface ใน Java
- .cpp files: นิยาม "จะทำอย่างไร" - การติดตั้งจริงของฟังก์ชันที่ประกาศไว้
ประโยชน์:
- ลด dependencies: โค้ดที่ include header ไม่ต้องรู้รายละเอียดการติดตั้ง และ header อื่นๆ ที่ใช้เฉพาะใน .cpp
- ลด compile time: เปลี่ยน implementation ใน .cpp ไม่ต้อง recompile ไฟล์อื่นที่แค่ include header
- Encapsulation: ซ่อนรายละเอียดภายใน