static成员
(一)概念
在C语言中,static可以修饰局部变量、全局变量、函数
修饰局部变量:增加了局部变量的声明周期;
修饰全局变量:限定全局变量只能在本源文件中使用;
修饰函数:限定该函数只能在本源文件中使用;
在C++中,static可以用来修饰成员变量和成员函数;
(二)static成员变量
1、概念
static修饰成员变量是一个类内部的全局变量,所有对象共享,可以看做类的成员,此变量将不再依赖于对象而存在,而是依赖于类而存在;
static成员不会存放在对象中,存放在静态数据区;
2、定义与初始化
class A
{
private:
static int _count;
};
int A::_count = 0;
static成员变量在类内定义,必须在类外进行初始化,格式如上方代码;
3、访问方式
1、通过对象访问:对象.static成员, 对象指针->static成员
2、通过类名访问:类名::static成员(普通成员不能通过此方法访问)
(三)static成员函数
1、概念
static成员函数的概念与static成员变量一样,同样是一个类内部的全局函数,所有对象共享;
2、定义
static成员函数在类内定义与实现;
3、访问方式
同static成员变量一样,也是通过对象和类来访问;
(四)注意
1、静态成员为所有类对象共享,不属于某个具体实例;
2、静态成员函数没有this指针,不能访问任何非静态成员;