登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
博客
发1篇日志+1圆
记录
发1条记录+2圆币
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
VIP网盘
VIP申请
网盘
联系我们
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
资源区
›
代码
›
【C++】static 知识整理 【静态与局部静态】 ...
【C++】static 知识整理 【静态与局部静态】
[ 复制链接 ]
殷罗绮
2025-6-4 19:58:26
目录
类外
类内
局部静态 local static
类外
类内
类外
C++的静态可以分为两种情况来讨论:在类外和在类内。
对于静态变量/函数,链接将只在内部 (如果不用static,那么在不同文件定义同名变量会报错)
声明定义在其他地方的变量需要使用extern,函数则不需要
类内
静态变量/方法将与类的所有实例共享内存 (若实例改变静态变量,那么会反应到这个类的所有实例)
静态方法无法访问类的实例和非静态变量(类中的每个非静态方法总是获得当前类的一个实例作为参数,而静态方法不会得到那个隐藏参数,其与在类外部编写方法相同)
类内的静态变量需要在类外声明:int Class::var;
以上有关静态的使用比较简单和常见,因此仅简单介绍,接下来我们看一个特殊一些的情况:局部静态
局部静态 local static
局部静态变量的生存期基本上相当于整个程序的生存期,而作用范围被限制。
(补充:变量的生存期:变量实际存在的时间(被删除之前);变量的作用域:可以访问变量的范围)
类外
以前,博主刷一些C++题的时候习会可能写出以下代码:
[code]#includeint n = 0;void Function() { n++; std::cout
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
殷罗绮
2025-6-4 19:58:26
关注
0
粉丝关注
19
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9986
凶契帽
9990
处匈跑
9990
4
黎瑞芝
9990
5
杭环
9988
6
猷咎
9988
7
鲫疹
9988
8
接快背
9988
9
里豳朝
9988
10
氛疵
9988
查看更多