这是C++对static关键字的重用。主要指静态数据成员/成员函数。
表示属于一个类而不是属于此类的任何特定对象的变量和函数. 这是与普通成员函数的最
大区别, 也是其应用所在, 比如在对某一个类的对象进行计数时, 计数生成多少个类的实
例, 就可以用到静态数据成员. 在这里面, static既不是限定作用域的, 也不是扩展生存
期的作用, 而是指示变量/函数在此类中的唯一性. 这也是”属于一个类而不是属于此类的
任何特定对象的变量和函数”的含义. 因为它是对整个类来说是唯一的, 因此不可能属于
某一个实例对象的. (针对静态数据成员而言, 成员函数不管是否是static, 在内存中只有
一个副本, 普通成员函数调用时, 需要传入this指针, static成员函数调用时, 没有this
指针. )
static数据成员的初始化:
(1) 初始化在类体外进行,而前面不加static,以免与一般静态变量或对象相混淆。
(2) 初始化时不加该成员的访问权限控制符private,public等。
(3) 初始化时使用作用域运算符来标明它所属类,因此,静态数据成员是类的成员,而不
是对象的成员。
(4) 静态数据成员是静态存储的,它是静态生存期,必须对它进行初始化。
Static成员函数
静态成员函数和静态数据成员一样,它们都属于类的静态成员,它们都不是对象成员。因
此,对静态成员的引用不需要用对象名。
静态成员函数仅能访问静态的数据成员,不能访问非静态的数据成员,也不能访问非静态
的成员函数,这是由于静态的成员函数没有this指针。