Một tập tin header được thường sử dụng để xác định một giao diện hoặc bộ giao diện trong một ứng dụng. Hãy coi tệp tiêu đề như một thứ thể hiện chức năng bên ngoài của chương trình trong khi bỏ qua các chi tiết triển khai kỹ thuật.
Ví dụ: nếu bạn đang tối ưu hóa một chương trình, rất có thể bạn sẽ sửa đổi tệp nguồn (.cpp) để cải thiện thuật toán, nhưng tệp tiêu đề sẽ không thay đổi, bởi vì các ứng dụng khách bên ngoài vẫn gọi các phương thức bằng cách sử dụng cùng một bộ thông số và trả về giá trị.
Trong một ngôn ngữ hướng đối tượng như C ++, tệp tiêu đề thường bao gồm những điều sau:
- Mô tả lớp và phân cấp kế thừa
- Các thành viên và loại dữ liệu lớp
- Phương thức lớp
Mặc dù không có gì ngăn cản mã được triển khai trong tệp tiêu đề, nhưng điều này thường không được ưa chuộng vì nó có thể tạo ra các khớp nối và phụ thuộc bổ sung trong mã.
Trong một số trường hợp (ví dụ như các lớp được tạo khuôn mẫu), việc triển khai phải được xác định trong tệp tiêu đề vì lý do kỹ thuật.
Một thư viện là một bộ sưu tập của mã mà bạn muốn cung cấp cho một chương trình hay một nhóm các chương trình. Nó bao gồm việc triển khai một giao diện cụ thể hoặc một tập hợp các giao diện.
Mã được xác định trong một thư viện để ngăn chặn sự trùng lặp mã và khuyến khích sử dụng lại. Thư viện có thể được liên kết tĩnh (.lib) hoặc liên kết động (.dll):
Một tĩnh liên kết thư viện định nghĩa một tập các biểu tượng xuất khẩu (có thể được coi là định nghĩa method) mà sau đó được liên kết vào thực thi cuối cùng (.exe) trong giai đoạn nối của quá trình xây dựng. Nó có lợi thế là thời gian thực thi nhanh hơn (vì thư viện không cần phải được tải động), với chi phí là một tệp nhị phân lớn hơn (vì các phương thức về cơ bản được sao chép trong tệp thực thi).
Một động liên kết thư viện được liên kết trong việc thực hiện một chương trình, chứ không phải là liên kết của một chương trình. Nó hữu ích khi nhiều chương trình cần sử dụng lại các phương thức giống nhau và được sử dụng rộng rãi trong các công nghệ như COM.