当前位置: 首页 > news >正文

C++primer 类的静态成员

什么是静态存储方式

静态存储方式是程序编译时分配固定内存空间的机制,其存储位置及大小在程序运行前确定并保持不变,直至程序终止。

  • 和动态存储的区别:动态存储根据需求动态分配内存(如函数参数),而静态存储在编译阶段已确定存储空间大小和位置,不支持运行时调整。
  • 适用场景:主要用于存储全局变量、静态局部变量及常量,例如:
    全局变量和static变量

也就是说,在程序编译阶段,cpu就已经为全局变量和static变量分配了内存空间。

常见的存储区及不同类型的数据管理

  • 栈区:用于存储程序运行时的临时数据,主要是局部变量(定义在函数内部的所有变量)以及调用函数时的形式参数和地址,栈内存仅在函数调用期间存在,函数返回后栈空间被回收。
  • 堆区:用于动态内存分配的区域,比如malloc,new,堆区通过malloc或new手动分动内存,同时需要手动释放内存,否则存在内存泄露的问题。
  • 静态区:也称为全局数据区或数据段,是存储全局变量和静态变量的部分。全局变量会在整个程序运行期间一直存在,对于定义在函数内部的static变量,在函数调用完之后不会被销毁,在调用期间,它们的值将一直保持。
    在这里插入图片描述
    在这里插入图片描述
    C++primer指出,“类需要它的一些成员与类本身直接相关,而不是与类的各个对象相关”,而static静态成员就是与类本身相关的成员,这也就是说静态成员属于类而不是对象,被所有对象共享。static静态成员包括static数据成员以及static成员函数。

static静态成员的声明和定义

  • static静态成员和其他成员一样必须在类里面声明,但是定义既可以出现在类的内部也可以出现在类的外部。如果是定义在类的外部,不能重复static关键词,该关键词只能出现在声明里面。
    在这里插入图片描述
  • 当static变量定义在类的外部时,必须指明成员所属的类名,例如在外部定义totPerson时,指明了其属于Student类。

static数据成员

  • static数据成员可以是指针,常量,引用,包括类类型
  • static数据成员的初始化一般情况下,在类外对static数据成员初始化, 例如上面的代码将totPerson初始化为0,然而,static也可以在类内初始化,但是必须要求静态成员是字符值常量类型的constexpr

static函数

非常非常重要的两点!!!:

  • static函数是没有this指针的,不与任何对象绑定在一起
  • static成员函数不能访问非静态成员的成员变量
    在这里插入图片描述
    在前面提到,static成员不是与类的每个对象相关,而是与类相关,这也就是说,static成员不需要像非static成员一样通过创建对象来访问,而可以直接通过所属的类来访问。
    在这里插入图片描述
    以上就是我的一些个人理解,第一次写文章,不足之处还麻烦各位大佬多多指教,🙏🙏🙏
http://www.gsyq.cn/news/33100.html

相关文章:

  • 2025 年最佳AI智能企业知识管理工具推荐
  • 移动端性能监控探索:可观测 Android 采集探针架构与实现
  • 2025年建站AI工具TOP10盘点:从ChatGPT到Lynx的智能革命
  • CompleteMaintenance点检提交反复超时,日志显示执行中断
  • 为何AI反诈骗防护比以往任何时候都更重要
  • MySQL 数据加密整改文档(TDE + 字段加密 + 密码哈希)
  • KeyShot许可分析软件推荐
  • 2025年U型科氏质量流量计最新推荐榜:微弯型科氏质量流量计/直管型科氏质量流量计/科氏质量流量计助力产业智能化升级
  • 收藏版:Phinx 数据库迁移完全指南
  • 数据库国产化替换后,Oracle还有没有学习的价值?
  • 为什么Android游戏画面在30帧运行时有抖动现象
  • Nginx中正确配置SSE(Server-Sent Events)服务
  • 基于二维熵阈值分割与遗传算法结合的图像分割
  • 10进制转2进制
  • 云原生周刊:在 Kubernetes 上运行机器学习
  • 2025年上海电动阀门厂最新推荐榜,气动阀门/高压阀门/真空阀门/自控阀门/调节阀门/聚焦产品实力与特色服务竞争力深度剖析
  • 上海电磁阀厂家最新竞争力评估推荐:高温电磁阀/高压电磁阀/防爆电磁阀/真空电磁阀/聚焦服务能力与产品特色
  • 如何在iPhone和Android设备上恢复已删除的电话号码
  • 云栖实录:重构可观测 - 打造大模型驱动的云监控 2.0 与 AIOps 新范式
  • 2025年泳池水循环设备厂家权威推荐榜单:泳池水净化设备 /钢结构泳池/泳池恒温设备源头厂家精选
  • 2025年修护/二硫化硒去屑/香氛/控油蓬松/洗发水推荐榜:西安悦己容生物主打植萃护理,四大品牌以精准配方适配多元发质
  • 2025不锈钢剪板折弯推荐榜:上海一步一金属主打定制加工,四大企业以精准工艺赋能工业制造
  • 2025年碳氢肥料生产厂家权威推荐榜单:农产品用料/增产用肥/碳氢核肥邮沃源头厂家精选
  • 算法分析--分治--3.矩阵乘法
  • 2025年高温线缆优质厂家盘点:实力派企业守护工业核心需求,铁氟龙高温线,硅胶高温线,高压高温线厂家推荐
  • my.conf脚本备份
  • Alibaba Cloud Linux 3 +Docker 部署 ThinkPHP6 (宝塔环境)-问题篇 - 实践
  • 2025 年西宁靠谱旅行社,青海出国游报团旅行社,青甘环线旅行社最新推荐,聚焦资质、案例、售后的五家旅行社深度解读
  • 2025 年西北环线旅行社,青海口碑最好的旅行社,青甘大环线旅行社最新推荐,聚焦资质、案例、售后的五家旅行社深度解读
  • 读书笔记:Oracle分区黑科技:间隔引用分区与虚拟列分区详解