//c++课下作业,顺手上传一下
1.静态数据成员
静态数据成员以static修饰,不同于一般的数据成员。一般的数据成员属于某个对象,不同对象的该成员各自占据一段内存,且只有在创建对象后才占据内存;而静态数据成员属于类,而非该类的某个对象,即使不创建对象也占据内存,代表着该类所有对象的共有属性。当通过一个对象改变该类的静态成员变量时,该类的其它对象的此静态成员变量也随之改变,因为不同对象中的此静态成员变量占据的实际上是同一段内存。
静态成员变量只能在类中定义,在类外初始化。如果没有对其进行初始化,系统将赋给其默认的初始值0或空。即使不在类外初始化,也需要在类外进行定义性声明以分配存储空间,而类内的是引用性声明不分配存储空间。
比如表示某班级学生的一个类student,该类的学生对象拥有共同的属性number,表示此班学生的数量。“询问”任一学生班级总人数,得到的答案应该是相同的,故应设置静态数据成员number。以下例子实现了创建一个学生时学生数量+1,删除一个学生时学生数量-1,且所有学生“口中”的班级人数是共享的。