C++ static关键字(详解)
1.static是什么?
static是C/C++中的类型修饰符。
2.static的作用:
用来控制变量的存储方式和可见性。
3.static在程序中的具体作用:
3.1修饰局部变量:
将局部变量的存储区域由栈变成了静态区,生命周期变成为程序结束时终止。但又不改变变量的作用域。
3.2修饰全局变量:
将全局变量的作用域由整个程序变成当前文件,变量的生命周期不变。
3.3修饰函数:
将函数的作用域由整个程序变成当前文件。
3.4修饰类的成员变量:
使得被修饰的变量变为类的所有对象所共享,节省了对象的内存空间。
3.5修饰类的成员函数:
调用被修饰的函数不会访问并且修改任何对象的(非static)数据成员。
特点:在类加载时就会分配内存,没有this指针。
4.补充
(1)静态数据成员都是静态存储的,所以必须在main函数之前显示的对其进行初始化;
(2)不能再头文件中声明静态全局变量,原因是可能是产生了多个同名的静态数据;
(3)不能将静态成员函数定义为虚函数;
(4)静态成员函数没有this指针;
(5)static缩短了子类对父类静态成员访问的时间,相对来说节省了内存空间;
(6)如果不想在子类中操作父类的静态成员,则可以在子类中定义一个同名的static成员。这样即可覆盖父类中的静态成员,并且根据C++的多态性变量命名规则,这样做是安全的;
(7)静态成员声明在类中,操作在其外部,所以对其取地址操作就跟取普通成员的操作略有不同。静态变量地址是指向其数据类型的指针,函数地址则是一个类型为nonmember的函数指针;
#我的实习求职记录##23届找工作求助阵地##我的求职思考##如何判断面试是否凉了##实习,投递多份简历没人回复怎么办#