Tiền khai báo
Tiền khai báo là một cách khai báo một ký hiệu (lớp, hàm hoặc biến) trước khi định nghĩa nó trong mã code. Nó giúp trình biên dịch hiểu được kiểu, kích thước và sự tồn tại của biểu tượng. Tiền khai báo này đặc biệt hữu ích khi chúng ta có các phụ thuộc theo chu kỳ hoặc để giảm thời gian biên dịch bằng cách tránh đưa vào tiêu đề không cần thiết trong tệp nguồn.
Lớp tiền khai báo
Để sử dụng một loại lớp trước khi nó được định nghĩa, bạn có thể khai báo lớp mà không cần xác định các thành viên của nó, như sau:
lass ClassA; // Tiền khai báo
Sau đó, bạn có thể sử dụng các con trỏ hoặc tham chiếu đến lớp trong mã code của mình trước khi xác định chính lớp đó:
void do_something (ClassA& obj);
class ClassB {
public:
void another_function(ClassA& obj);
};
Tuy nhiên, nếu bạn cố tạo một đối tượng của ClassA hoặc gọi các hàm thành viên của nó mà không định nghĩa lớp, bạn sẽ gặp lỗi biên dịch.
Hàm tiền khai báo
Các hàm phải được khai báo trước khi sử dụng chúng và có thể sử dụng khai báo chuyển tiếp để khai báo một hàm mà không cần xác định nó:
int add(int a, int b); // tiền khai báo
int main() {
int result = add(2, 3);
return 0;
}
int add(int a, int b) {
return a + b;
}
Tiền khai báo Enum và Typedef
Đối với enum và typedef, không thể chuyển tiếp khai báo vì chúng không có giai đoạn khai báo và định nghĩa riêng biệt.
Hãy nhớ rằng các khai báo chuyển tiếp nên được sử dụng một cách thận trọng, vì chúng có thể làm cho mã code trở nên khó hiểu hơn.