在C++中,静态成员属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共用。
静态成员变量实现多个对象之间的数据共享不会破坏隐藏的规则,保证了安全性,还可以节省内存
静态成员的声明要加关键词static。静态成员可以通过双冒号来使用,即<类名>::<静态成员名>,只有静态成员可以采用此种引用方式。
static成员变量属于类(被存放在数据段中),不属于某个具体的对象(具体对象的内存是分配在堆中的),即使创建多个对象,也只为该变量分配一次内存,也只为该变量分配一次内存,所有对象使用的都是这份内存中的数据。若它为public类型,当某个对象修改了它,也会影响到其它对象,所有对象都是同甘共苦的。
C++规定const静态类成员可以直接初始化,其它非const的静态类成员需要在类外初始化,且不能使用static关键字。我们一般选择在类的实现文件中实现它(定义(为其分配内存),初始化)