类的静态成员函数和静态成员变量是类的属性,在该类的所有对象间共享。在使用时,可以直接通过类名来引用,也可以通过对象进行引用。考虑以下代码:
class A{
public:
static void update() {s_cnt++; }
static int cnt() {return s_cnt; }
private:
static int s_cnt;
};
int A::s_cnt = 0;
int main()
{
A a1, a2;
a1.update();
a2.update();
A::update();
cout << "A::cnt() = " << A::cnt() << endl;
cout << "a1.cnt() = " << a1.cnt() << endl;
cout << "a2.cnt() = " << a2.cnt() << endl;
return 0;
}
类 A 的静态成员函数 update 每次将其静态成员变量 s_cnt 加1,cnt 函数返回 s_cnt 的值。a1,a2均为 A 的对象,通过 a1,a2和A 分别调用 update,输出为:
A::cnt() = 3
a1.cnt() = 3
a2.cnt() = 3
因为三次调用 update 操作的都是同一个值。