1 静态成员变量
1.1 我们可以用static来修饰成员变量,因为static是单独的一块区域,所以不用实例化也能够使用。但是使用时也要注意public state 与private static的区别 private只能是类内部才能访问的静态变量。
1.2 无论创建过多少份副本,static变量只有一个
1.3 一般static的初始化在类外进行采用::
class A{
public:
static int lenght;
private :
static int hight;
}
int A ::lenght = 0;//初始化在类外
int A ::hight = 0;//初始化在类外
你在类外访问不了private static
1 静态成员函数
如果把函数成员声明为静态的,就可以把函数与类的任何特定对象独立开来。静态成员函数即使在类对象不存在的情况下也能被调用,静态函数只要使用类名加范围解析运算符 :: 就可以访问。
静态成员函数只能访问静态成员数据、其他静态成员函数和类外部的其他函数。
静态成员函数有一个类范围,他们不能访问类的 this 指针。您可以使用静态成员函数来判断类的某些对象是否已被创建。
静态成员函数与静态变量不需要通过创建对象实例化,就可以进行调用。
而非静态变量就必须通过创建对象实例化,我们才能用这个对象调用它。
如果静态函数中出现非静态成员。
无创建对象的静态方法 中,没有满足调用非静态成员的条件。