静态成员变量必须在类外实现初始化。
静态数据成员存储在静态存储区,在程序整个运行期间都存在。
sizeof(类名Student)=sizeof(对象名s1)为不包含静态数据成员的内存大小。
常用来解决计数问题
#include <iostream> using namespace std; class Student { public: Student() { cout<<"create one student"<<endl; total++; cout<<total<<endl; } static int number () { return total; } ~Student() { cout<<"destruct one student"<<endl; total--; cout<<total<<endl; } private: static int total; }; int Student::total=0; void main() { Student s1; Student s2; //cout<<"total="<<Student::total<<endl;//不能在类外调用private成员。可通过调用number静态成员函数实现 cout<<"total="<<Student::number()<<endl; }
静态成员函数:
跟静态成员变量一样也是属于整个类.静态成员函数只能直接引用静态数据成员,不能引用非静态数据成员。