tính chất của phương thức tĩnh (Static Method) trong lớp
**Phương thức tĩnh** trong C++ là một phương thức được khai báo với từ khóa `static`. Dưới đây là một số tính chất chính của phương thức tĩnh:
1. **Không cần đối tượng để gọi**: Phương thức tĩnh có thể được gọi mà không cần tạo một đối tượng của lớp. Thay vào đó, nó có thể được gọi thông qua tên lớp.
2. **Không có con trỏ `this`**: Trong phương thức tĩnh, không có con trỏ `this`, vì nó không thuộc về bất kỳ đối tượng cụ thể nào. Điều này có nghĩa là phương thức tĩnh không thể truy cập trực tiếp các thành viên không tĩnh (non-static members) của lớp.
3. **Chia sẻ giữa tất cả các đối tượng**: Các biến tĩnh (static variables) trong phương thức tĩnh được chia sẻ giữa tất cả các đối tượng của lớp, nghĩa là tất cả các đối tượng sẽ cùng sử dụng một giá trị cho biến tĩnh đó.
4. **Thường dùng cho các hàm tiện ích**: Phương thức tĩnh thường được sử dụng để thực hiện các chức năng chung hoặc tiện ích mà không cần phải tạo ra một đối tượng của lớp.
### Ví dụ minh họa
```cpp
#include <iostream>
using namespace std;
class Counter {
public:
static int count; // Biến tĩnh để đếm số lượng đối tượng
Counter() {
count++; // Tăng biến đếm khi tạo đối tượng mới
}
static void displayCount() { // Phương thức tĩnh
cout << "Số lượng đối tượng đã tạo: " << count << endl;
}
};
// Khởi tạo biến tĩnh
int Counter::count = 0;
int main() {
Counter obj1; // Tạo đối tượng đầu tiên
Counter obj2; // Tạo đối tượng thứ hai
// Gọi phương thức tĩnh mà không cần tạo đối tượng
Counter::displayCount(); // In ra: Số lượng đối tượng đã tạo: 2
return 0;
}
```