Các đối tượng tĩnh được khai báo với từ khóa static. Chúng chỉ được khởi tạo một lần và lưu trữ trong vùng nhớ tĩnh. Các đối tượng tĩnh chỉ bị hủy khi chương trình kết thúc, tức là chúng tồn tại cho đến khi chương trình chấm dứt.
Chương trình dưới đây minh họa đối tượng tĩnh trong C++.
Ví dụ
#include <iostream>
using namespace std;
class Base {
public:
int func() {
int a = 20;
cout << "Giá trị của a: " << a;
}
};
int main() {
static Base b;
b.func();
return 0;
}
Kết quả
Giá trị của a: 20
Hãy hiểu chương trình trên.
Hàm func() trong lớp Base khai báo một biến int a và hiển thị giá trị của nó.
class Base {
public:
int func() {
int a = 20;
cout << "Giá trị của a: " << a;
}
};
Trong hàm main(), một đối tượng tĩnh b được tạo từ lớp Base. Sau đó hàm func() được gọi. Vì đối tượng b là tĩnh, nó chỉ bị hủy khi chương trình kết thúc.
int main() {
static Base b;
b.func();
return 0;
}