声明为static的类成员称为类的静态成员,用static修饰的成员变量,称之为静态成员变量;用 static修饰的成员函数,称之为静态成员函数。静态成员变量一定要在类外进行初始化
一、static成员的特性
1.静态成员为所有对象所共享,不独属于某个具体对象,存放在静态区,不存放在对象里,sizeof不会包含静态成员
2.不能在类内初始化(类内只是声明),只能在类外初始化(类外进行定义,初始化时省略static关键字, 通过类型 类名::静态成员进行赋值)
3.可通过类名::静态成员或者对象.静态成员进行访问
4.静态成员同样受private,public,protected访问限定符的限制
5.静态成员函数没有this指针不能访问任何非静态成员
二、特例
如果在静态成员前加const进行修饰,则可以在类内进行初始化。
静态成员不走初始化列表,用const修饰可以走。