C++中static的关键用法:全局与类内特性详解
161 浏览量
更新于2024-09-02
收藏 74KB PDF 举报
C++中的`static`关键字在编程中有两种主要用途,分别对应于面向过程和面向对象的设计风格。在面向过程的程序设计中,`static`用于定义静态全局变量和静态成员函数。
1. 静态全局变量
当一个全局变量前加上`static`关键字,它成为静态全局变量。例如,在`Example1`中,`static int n;`定义了一个静态全局变量。这种变量的特点如下:
- 它在程序运行时占用的是全局数据区的存储空间,不同于局部变量的栈区或动态分配的堆区。
- 静态全局变量默认未初始化时会被赋予0值,除非明确初始化。
- 其作用域限于当前源文件,这意味着在其他源文件中无法访问这个变量,避免了名称冲突。
- 不同于普通全局变量,静态全局变量生命周期贯穿整个程序执行,不会因为函数结束而消失。
在`Example2`中,通过`extern int n;`来引入`Example1`中的静态全局变量,即使两个文件各自定义了同名变量,由于它们都是静态的,也不会导致冲突。这是因为静态全局变量的实例仅有一个,存储在共享的数据区。
2. 面向对象设计中的static
在面向对象编程中,`static`可以用于类成员变量和成员函数:
- 静态成员变量:与类而不是类的实例关联,只有一个实例存在,所有类的对象共享这个变量。静态成员函数同样不依赖于类的实例,可以直接通过类名调用。
- 静态局部变量:在函数内部定义的静态变量,其生命周期与整个函数相同,但仅在每次函数调用时创建,结束后销毁。
总结来说,C++中的`static`关键字提供了灵活性,使得程序能够控制变量的生命周期、作用域以及数据共享方式。理解并恰当地使用`static`有助于编写高效、清晰且可维护的代码。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2014-09-24 上传
2020-09-05 上传
2020-09-05 上传
2020-08-19 上传
2023-05-14 上传
2023-10-23 上传
weixin_38705004
- 粉丝: 5
- 资源: 946
最新资源
- 基于Python和Opencv的车牌识别系统实现
- 我的代码小部件库:统计、MySQL操作与树结构功能
- React初学者入门指南:快速构建并部署你的第一个应用
- Oddish:夜潜CSGO皮肤,智能爬虫技术解析
- 利用REST HaProxy实现haproxy.cfg配置的HTTP接口化
- LeetCode用例构造实践:CMake和GoogleTest的应用
- 快速搭建vulhub靶场:简化docker-compose与vulhub-master下载
- 天秤座术语表:glossariolibras项目安装与使用指南
- 从Vercel到Firebase的全栈Amazon克隆项目指南
- ANU PK大楼Studio 1的3D声效和Ambisonic技术体验
- C#实现的鼠标事件功能演示
- 掌握DP-10:LeetCode超级掉蛋与爆破气球
- C与SDL开发的游戏如何编译至WebAssembly平台
- CastorDOC开源应用程序:文档管理功能与Alfresco集成
- LeetCode用例构造与计算机科学基础:数据结构与设计模式
- 通过travis-nightly-builder实现自动化API与Rake任务构建