静态成员变量本质上是全局变量。一个类,哪怕一个对象都不存在,其静态成员变量也存在。
设置静态成员变量的目的,是为了将和某些类紧密相关的全局变量和全局函数写到类里面,形式上成为一个整体。
static 成员变量的内存既不是在声明类时分配,也不是在创建对象时分配,而是在(类外)初始化时分配。反过来说,没有在类外初始化的 static 成员变量不能使用。
//通过类类访问 static 成员变量
Student::m_total = 10;
//通过对象来访问 static 成员变量
Student stu("小明", 15, 92.5f);
stu.m_total = 20;
//通过对象指针来访问 static 成员变量
Student *pstu = new Student("李华", 16, 96);
pstu -> m_total = 20;