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指针;

5static缩短了子类对父类静态成员访问的时间,相对来说节省了内存空间;

6如果不想在子类中操作父类的静态成员,则可以在子类中定义一个同名的static成员。这样可覆盖父类中的静态成员,并且根据C++的多态性变量命名规则,这样做是安全的;

7静态成员声明在类中,操作在其外部,所以对其取地址操作就跟取普通成员的操作略有不同。静态变量地址是指向其数据类型的指针,函数地址则是一个类型为nonmember的函数指针; 

#我的实习求职记录##23届找工作求助阵地##我的求职思考##如何判断面试是否凉了##实习,投递多份简历没人回复怎么办#
全部评论

相关推荐

02-25 19:38
门头沟学院 Java
点赞 评论 收藏
分享
找工作勤劳小蜜蜂:自我描述部分太差,完全看不出想从事什么行业什么岗位,也看不出想在哪个地区发展,这样 会让HR很犹豫,从而把你简历否决掉。现在企业都很注重员工稳定性和专注性,特别对于热爱本行业的员工。 你实习的工作又太传统的it开发(老旧),这部分公司已经趋于被淘汰,新兴的互联网服务业,比如物流,电商,新传媒,游戏开发和传统的It开发有天然区别。不是说传统It开发不行,而是就业岗位太少,基本趋于饱和,很多老骨头还能坚持,不需要新血液。 工作区域(比如长三角,珠三角,成渝)等也是HR考虑的因素之一,也是要你有个坚定的决心。否则去几天,人跑了,HR会被用人单位骂死。
点赞 评论 收藏
分享
评论
4
14
分享

创作者周榜

更多
正在热议
更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务