C++ static关键字作用浅析
static作用
改变被修饰变量或函数的作用范围与生命周期。
全局变量
static修饰全局变量时,在同一文件中被修饰的全局变量和普通全局变量的作用范围与生命周期没有区别,但被修饰的全局变量只能在定义的文件中可见,其他文件无法访问该变量。
局部变量
static修饰函数中的局部变量时,该变量不会因为所在函数执行结束而被释放。
普通函数
static修饰函数时,表明该函数只能在定义的文件中被调用。
类数据成员
static修饰类数据成员时,表明对该类所有对象这个数据成员都只有一个实例。即该实例归 所有对象共有。且该变量在类实例化对象前必须初始化,即该变量不能在类成员函数中被初始化。
类成员函数
static修饰类成员函数时,该函数能够通过类名和实例化对象名两种方式调用,不能调用非静态成员函数与数据成员,能被非静态成员函数调用。