static可以用来修饰函数和变量,包括成员函数和成员变量,static改变的是修饰变量的生命周期,作用域没变
局部静态变量,它的生命周期也是全局的并且只被初始化一次,但是作用域就仅仅是在定义的函数体中。
静态成员变量:必须在类外初始化,
static成员变量访问形式:1°可以被对象访问 2° 可以被类访问 3°可以被对象指针访问
静态成员函数:当static修饰静态成员函数时,该函数属于属于该类所有,不属于特定的对象,所以该函数只能访问该类的静态成员变量A::SHOW(),非静态的变量属于对象,不能访问,
public和private:
public 是公有,即类外可以访问
private是私有,即只有类内部可以使用 同样的,私有静态变量,也只能在类内部使用
总结:
static改变的是所修饰的变量,函数,成员变量,成员函数等的生命周期,其作用域没有任何改变,比如说成员变量属于类对象,静态成员变量也是属于类对象,但是static使其变成了类似全局变量,所以它同时也属于类;private修饰的数据都是属于类内可用,所以静态成员变量,也是类内可用;函数也是一样的道理;所以静态私有成员函数,不能在类外A::show()这样调用;