30/09/2018, 18:34

Cách tạo file .h và ứng dụng của nó

Em học trên lớp thì nghe thầy dạy nên tạo tách chương trình ra 2 file .h và .cpp nhưng em vẫn chưa hiểu lắm về cách tạo file .h và cũng như là ứng dụng của nó. Có thể nêu vài ví dụ hoặc giải thích về ứng dụng của file .h giúp em được không ? Em cảm ơn

*grab popcorn* viết 20:37 ngày 30/09/2018

.h là file header, ý nghĩa của nó là cái gì thì nó tương đương là mục lục của một cuốn sách vậy.
Cách tạo thế nào thì bạn biết tạo prototype chứ nhỉ?
Đơn giản là bê nguyên phần prototype vào file header (file .h), còn về phần code thì cho vào file .cpp.

明玉 viết 20:47 ngày 30/09/2018

File header đơn giản là để include trong file source, khi biên dịch thì compiler chỉ biên dịch file cpp thôi vì source đã include header rồi nên source đã có nội dung của header, về lý thì source viết được cái gì thì header viết được cái đấy.

Ứng dụng của cái này là để phân chia code ra để quản lý, header chuyên dùng để chứa prototype của hàm, cho các file source khác include mà dùng, đi kèm với 1 file source để implement cái prototype đó thành hàm hoàn chỉnh. Ngoài ra có thể dùng để chứa biến toàn cục (với từ khóa extern), static class, hay làm nơi chứa macro.

Ví dụ về mô hình prototype function:

// header.h
int Phép_Cộng(int a, int b); // prototype - nguyên mẫu, declaration - khai báo

// source.cpp
#include "header.h" // ghép file header vào
int Phép_Cộng(int a, int b) // definition - định nghĩa cho hàm Phép_Cộng
{
    return a + b;
}

Rồi ở các file source khác chỉ cần có dòng:

// another source file
#include "header.h"

Là có thể dùng được hàm Phép_Cộng.



Ví dụ về biến toàn cục:

// header.h
extern int đếm_số;

// source.cpp
#include "header.h"
int đếm_số;

Rồi các file khác include header.h là dùng được biến đếm_số. Nếu ở file A có gán đếm_số1 thì khi code chạy sang file B, truy cập biến đếm_số thì giá trị nó vẫn là 1.



Ví dụ về static class:

// header.h
class Global
{
public:
     static double số_thực;
}

Phải có code khởi tạo - initialization

// source.cpp
#include "header.h"
double Global::số_thực = 2.1;

Các file khác include header.h rồi truy cập như thế này, tương tự như biến toàn cục:

// other file
double x = Global::số_thực;
Bài liên quan
0