当前位置: 首页 > 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.jsqmd.com/news/24879/

相关文章:

  • CSP-S NOIP 2025 备考
  • netcore vue socket.io
  • Docker安装DPanel(docker容器管理工具)
  • 2025 年最佳AI智能企业知识管理工具推荐
  • 制造业设备管理的三个坑,90% 的工厂都踩过
  • 【硬件测试】基于FPGA的8PSK+帧同步系统开发与硬件片内测试,包含高斯信道,误码统计,可设置SNR
  • 移动端性能监控探索:可观测 Android 采集探针架构与实现
  • 2025年建站AI工具TOP10盘点:从ChatGPT到Lynx的智能革命
  • KPI绩效考核系统软件:让绩效管理由“难”变“易”的核心密钥
  • CompleteMaintenance点检提交反复超时,日志显示执行中断
  • ICPC Nanjing Regional (部分题题解)
  • 为何AI反诈骗防护比以往任何时候都更重要
  • 2025 年最受欢迎的 50 款免费 AI 工具,无免费增值、无付费计划或无每日信用额度限制
  • prometheus监控体系搭建
  • 分布式锁巅峰对决:Redis RedLock vs ZooKeeper临时节点——Redission看门狗如何破解续期困局 - 教程
  • Elasticsearch Hot Threads
  • 习题-良序集
  • 2025年北京无人机执照培训机构推荐榜,caac无人机执照培训机构/caac无人机执照培训基地/聚焦企业服务品质与专业培训能力深度剖析
  • MySQL 数据加密整改文档(TDE + 字段加密 + 密码哈希)
  • KeyShot许可分析软件推荐
  • P6147 [USACO20FEB] Delegation G 题解
  • AI元人文:大语言模型、世界模型与AI元人文模型的文明三重奏
  • 6G通讯技术的应用场景和关键技术
  • 全球1-18级的瓦片数量
  • 2025年U型科氏质量流量计最新推荐榜:微弯型科氏质量流量计/直管型科氏质量流量计/科氏质量流量计助力产业智能化升级
  • 2025年火锅底料工厂厂家权威推荐榜单:袋装火锅底料/餐饮火锅底料/企业火锅底料源头厂家精选
  • 收藏版:Phinx 数据库迁移完全指南
  • react打包优化和配备优化都有哪些?
  • 2025年港口动态沙盘模型厂家 权威推荐榜单:物流教学实训沙盘/港口演示实训模型/智能港口实训模型源头厂家精选
  • 2025年电力机动绞磨厂家权威推荐榜单:快速机动绞磨/柴油机动绞磨机/机动绞磨机源头厂家精选