说一下C++中static关键字的作用
static关键字 | 作用域 | 生命周期 | 存储 | 初始化 |
全局静态变量 | 本文件定义位置到未见结尾 | 在程序执行之前被创建,在程序执行的整个生命周期都存在 | 静态存储区 | 未被初始化的为0 |
局部静态变量 | 仍是局部作用域,但是函数活语句结束时,它并没有被销毁,而是仍然驻留在内存中,只不过我们不能再对它进行访问,直到该函数再起被调用,它的值会不变 | 在程序执行之前被创建,在程序执行的整个生命周期都存在 | 静态存储区 | 未被初始化的为0 |
静态函数 | 只能在本源文件中使用 |
|
| 无 |
类的静态成员 | 整个类,而不属于某个对象 |
|
| 类内定义,类外初始化 |
类的静态函数 | 整个类,而不属于某个对象 |
|
| 注意:没有this指针,只能调用静态方法 |
1、修饰全局变量。该变量只能在该文件中使用,其他文件不可访问,存放在静态存储区。
2、修饰局部变量。该变量作用域只在该局部函数里,出了函数静态局部变量不会被释放,如果未初始化默认会初始化为0。存放在静态存储区。
3、修饰成员变量,该变量为所有类对象共享,不需要this指针,并且不能和const一起使用,因为const需要this指针。
4、修饰成员函数,用命名空间表示。