static member (variable hoặc function) thuộc về class, không thuộc về instance cụ thể nào — tất cả object chia sẻ cùng 1 bản.
cpp
class Counter {
public:
static int total; // 1 biến cho toàn bộ class
Counter() { total++; }
~Counter() { total--; }
static int getTotal() { return total; } // không có `this`
};
int Counter::total = 0; // phải định nghĩa ngoài class
Counter a, b, c;
std::cout << Counter::total; // 3
std::cout << Counter::getTotal(); // gọi qua class nameĐặc điểm:
- Static member variable phải định nghĩa ngoài class (trừ inline static C++17).
- Static method không có this — không truy cập non-static member.
- Dùng cho singleton, factory method, global counter, shared config.