目录
1.概念
声明为static的类成员称为类的静态成员,用static修饰的成员变量,称之为静态成员变量;用
static修饰的成员函数,称之为静态成员函数。静态成员变量一定要在类外进行初始化
2.特性
1. 静态成员为所有类对象所共享,不属于某个具体的对象,存放在静态区
2. 静态成员变量必须在类外定义,定义时不添加static关键字,类中只是声明
3. 类静态成员即可用 类名::静态成员 或者 对象.静态成员 来访问
4. 静态成员函数没有隐藏的this指针,不能访问任何非静态成员
5. 静态成员也是类的成员,受public、protected、private 访问限定符的限制
3.瞎讲的
1.静态成员为什么为所有类的对象共享?
答:被static 所修饰的成员和函数,是储存在静态区的,生命周期就是程序的生命周期,相当一个只属于这个类的全局的变量。
2.静态成员为什么只能在类外面定义
答:类内部的成员变量初始化都需走初始化列表,但是static修饰的成员变量和函数是存在静态区,不在类的内部存储,所以没办法走初始化列表,只能在外部手动初始化。
3.静态成员函数可以调用非静态成员函数吗?
答:不可以,因为静态成员函数不储存在类内部,没有this指针。