静态成员的需要性:
有些属性是类中所有对象共有的。
如果放在全局变量中,则它们在类的外边,既不安全,又影响了重用性。
使用:
像成员有数据成员和成员函数之分一样,静态成员也有静态数据成员和静态数据成员函数之分,静态成员用“static”声明。
eg:多文件程序实现结构
//student.h的定义 class Student { public: Student(char *pName="no name"); ~Student(); static int number();//静态成员函数 protected: static int noOfStudents; char name[40]; }; //student.cpp 类的实现文件 #include <iostream.h> #include <string.h> #include "student.h" int Student::noOfStudents=0;//在类的内部实现中分配空间和初始化 Student::Student(char *pName) { cout<<"creat one student\n"; strcpy(name,PName); noOfStudents++; cout<<noOfStudents<<endl; } Student::~Student() { cout<<"destruct one student\n"; noOfStudents--; cout<<noOfStudents<<endl; } int Student::number() { return noOfStudents; } //mian.cpp主程序 #include "student.h"//重用Student类 #include <iostream.h> void fn { Student s1; Student s2; cout<<Student::number()<<endl; } void main() { fn(); cout<<Student::number()<<endl; }