Làm việc với header file
Trước tiên đi qua những phần quan trọng tiếp theo, chúng ta sẽ cùng tìm hiểu cách tạo file .h
(header file). Let’s go!
Mở đầu
Khi chương trình bạn đủ lớn, việc khai báo prototype (mình đã giải thích prototype trong phần basic) sẽ trở nên cần thiết. Ít nhất là khi bạn muốn tìm kiếm lại 1 hàm nào đó bạn chỉ phải tìm kiếm trong danh sách các hàm được liệt kê gần nhau (chứ không phải là tìm hết từng dòng code) và để dễ dàng hơn chúng ta sẽ tạo riêng cho các prototype 1 file để việc tìm là thuận tiện nhất.
Header basic
Trước tiên chúng ta sẽ tìm hiểu về cách hoạt động của 1 file header cơ bản mà lúc nào cũng phải có - iostream.
Đây là cách hoạt động của nó. Mình sẽ giải thích qua 1 chút: ở phần compile
(biên dịch) mọi nội dung của header file iostream (các khai báo prototype, ví dụ khai báo function cout
) sẽ được copy vào file main.o, nhưng lúc này chúng ta chỉ mới có khai báo của hàm (không có thân hàm - nếu bạn chưa rõ phần này đọc lại Khai báo hàm và định nghĩa hàm) vì vậy chúng ta sẽ đến bước Link - kết nối đến thư viện chuẩn để lấy được thân hàm của những hàm đã khai báo trong iostream. Lúc này các hàm đã có đủ khai báo và thân hàm nên chúng ta đã sử dụng được (file hoàn chỉnh là main.exe).
Ok dựa trên iostream chúng ta sẽ tự tạo cho mình file header theo nguyên tắc:
Header file chỉ chứa những khai báo hàm (prototype).
Header file với class
Header file là 1 truyền thống khi chúng ta sử dụng class, kết hợp với nguyên tắc trong header basic, chúng ta có nguyên tắc viết header file cho class như sau:
Header file cho class chứa thuộc tính và các prototype của các phương thức.
Bắt đầu sử dụng
Giờ chúng ta sẽ viết 1 chương trình quản lý học sinh nho nhỏ với yêu cầu: chương trình nhập thông tin học sinh và xuất nó ra.
Trước tiên chúng ta sẽ phác thảo sơ đồ file cho chương trình gồm:
- source.cpp: nơi chứa hàm main
- HocSinh.h: header file của class HocSinh
- HocSinh.cpp: chứa các thân hàm của class HocSinh
Chúng ta sẽ đi cụ thể từng class, bắt đầu với HocSinh.h:
HocSinh.cpp
source.cpp
Nhận xét: việc tổ chức file này nhìn khá rõ ràng và tiện lợi cho việc code, càng thích hợp khi chúng ta dùng với OOP.
Tổng kết
Chúng ta sẽ dùng cách tổ chức file kiểu này cho những bài sau, có thắc mắc các bạn bình luận bên dưới nhé. Pie~