Trong class, không chỉ biến mới có thể khai báo là static, hàm cũng có thể khai báo như vậy. Ví dụ sau đây →
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#include <iostream> using namespace std; class Class { static int Counter; public: Class(void) { ++Counter; }; ~Class(void) { --Counter; if(Counter == 0) cout << "Bye, bye!" << endl; }; static void HowMany(void) { cout << Counter << " instances" << endl; } }; int Class::Counter = 0; int main(void) { Class::HowMany(); Class a; Class b; b.HowMany(); Class c; Class d; d.HowMany(); return 0; } |
là một chương trình có chứa một class với hai thành phần static: một biến và một hàm.
Hàm static (static function), cũng như một biến static, cũng có thể được truy cập (hoặc chính xác hơn là được gọi) mà không cần có đối tượng nào của class được tạo ra.
Lưu ý rằng hàm static có thể được gọi từ bên trong class như sau:
1 2 3 |
... HowMany(); ... |
hoặc thông qua một đối tượng đang tồn tại của class như sau:
1 2 3 |
... b.HowMany(); ... |
Chương trình trên sẽ output ra màn hình như sau:
1 2 3 4 |
0 instances 2 instances 4 instances Bye, bye! |