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

C++学习笔记26:static 静态成员

目录一、为什么需要静态成员二、静态成员变量三、静态成员变量需要类外定义四、用静态成员变量统计对象个数五、静态成员变量不占对象空间六、静态成员函数七、静态成员函数没有 this 指针八、静态成员函数可以访问静态成员九、调用方式1. 通过类名调用2. 通过对象调用十、小结一、为什么需要静态成员在C中普通成员变量是属于每个对象的。例如class A { private: int _a; };如果多创建几个对象A a1; A a2; A a3;那么这几个对象都有自己独立的 _a。但是有些数据不应该只属于某一个对象应该属于整个类。比如想统计一共创建了多少个对象就可以使用静态成员变量。二、静态成员变量静态成员变量使用 static 修饰。例如class A { public: A() { _count; } private: static int _count; };这里 _count 是静态成员变量。它不属于某一个具体的对象而是属于整个类。也就是说所有 A 类对象共享同一个 _count三、静态成员变量需要类外定义静态成员变量虽然在类中声明还需要在类外定义。class A { private: static int _count; }; int A::_count 0;注意static int _count;这只是声明。int A::_count 0;这才是定义和初始化。如果只在类中声明没有在类外定义可能会出现来连接错误。四、用静态成员变量统计对象个数示例#include iostream using namespace std; class A { public: A() { _count; } A(const A a) { _count; } static int GetCount() { return _count; } private: static int _count; }; int A::_count 0; int main() { A a1; A a2; A a3(a1); cout A::GetCount() endl; return 0; }运行结果3这里创建了 a1、a2又用 a1 拷贝了 a3所以构造了 3 个对象。静态成员变量 _count 被所有对象共享可以用来统计对象数量。五、静态成员变量不占对象空间普通成员变量属于对象会影响对象大小。但是静态成员变量属于类存放在静态区不存放在对象内部。例如class A { private: int _a; static int _count; };这里对象只存 _a不存 _count。所以静态成员变量不会增加对象的大小。六、静态成员函数静态成员函数也使用 static 修饰。例如class A { public: static int GetCount() { return _count; } private: static int _count; };静态成员函数可以通过类名直接调用。A::GetCount();不需要先创建对象。七、静态成员函数没有 this 指针普通成员函数调用时会隐含传递 this 指针。但是静态成员函数不属于某一个具体的对象所以没有 this 指针。错误示例class A { public: static void Func() { cout _a endl; // 错误 } private: int _a; };因为 _a 是普通成员变量必须依赖具体对象存在。而静态成员函数没有 this 指针不知道一概访问哪个对象的 _a。八、静态成员函数可以访问静态成员静态成员函数可以直接访问静态成员变量。#include iostream using namespace std; class A { public: static int GetCount() { return _count; } private: static int _count; };因为 _count 属于类不属于某个对象所以静态储层元函数可以访问它。简单总结静态成员函数可以访问静态成员 静态成员函数不能直接访问非静态成员。九、调用方式静态成员函数有两种调用方式。1. 通过类名调用A::GetCount();这种方式更推荐因为他能说明 GetCount 属于类本身。2. 通过对象调用A a; a.GetCount();这种方式也可以但不如类名调用清晰。十、小结本篇主要学习了C中的 static 静态成员。需要记住静态成员变量使用 static 修饰静态成员变量属于类不属于某个对象所有对象共享一个静态成员变量静态成员变量需要在类外定义和初始化静态成员变量不占对象空间静态成员函数也使用 static 修饰静态成员函数没有 this 指针静态成员函数不能直接访问普通成员变量静态成员函数可以直接访问静态成员变量静态成员函数推荐通过类名调用。static 静态成员适合用来保存和类整体相关的数据例如对象计数、共享配置等。

相关文章:

C++学习笔记26:static 静态成员

目录 一、为什么需要静态成员? 二、静态成员变量 三、静态成员变量需要类外定义 四、用静态成员变量统计对象个数 五、静态成员变量不占对象空间 六、静态成员函数 七、静态成员函数没有 this 指针 八、静态成员函数可以访问静态成员 九、调用方式 1. 通过…...

【限时解锁】Gemini深度研究模式私有化部署方案:仅3家头部科研机构掌握的本地化推理链配置

更多请点击: https://codechina.net 第一章:Gemini深度研究模式的核心原理与能力边界 Gemini深度研究模式并非简单增强上下文长度的推理机制,而是一种面向复杂知识密集型任务的分层式认知架构。其核心原理在于动态构建“问题-证据-推理”三元…...

【Gemini生命周期价值深度解码】:20年AI架构师亲授5大阶段ROI测算模型与避坑指南

更多请点击: https://intelliparadigm.com 第一章:Gemini生命周期价值分析 Gemini 模型的生命周期价值(LTV)不仅体现在其推理性能与多模态能力上,更贯穿于从模型部署、持续微调、监控反馈到迭代升级的完整闭环。相较于…...

【ChatGPT投资人邮件撰写黄金法则】:20年FA/VC顾问亲授——3类高回复率模板+5个致命话术雷区

更多请点击: https://codechina.net 第一章:ChatGPT投资人邮件撰写的核心认知与底层逻辑 投资人邮件不是信息的简单堆砌,而是认知对齐、信任构建与决策催化三重目标的高度凝练表达。其底层逻辑根植于风险投资行业的决策机制——LP关注资金效…...

ChatGPT移动端隐私红线报告(2024Q2):麦克风/剪贴板/位置数据采集路径全曝光,3步彻底锁死敏感权限

更多请点击: https://intelliparadigm.com 第一章:ChatGPT移动端隐私红线报告(2024Q2)核心发现与风险定级 高危数据外泄通道实证 本季度对iOS与Android平台主流ChatGPT客户端(含官方App v6.12.1及第三方封装SDK集成应…...

【小红书算法偏爱的文案结构】:ChatGPT无法自学的3层语义嵌套技巧(含2024Q2平台最新流量权重白皮书节选)

更多请点击: https://kaifayun.com 第一章:小红书算法偏爱的文案结构本质解构 小红书的推荐算法并非仅依赖关键词或标签匹配,其核心是通过多模态语义理解与用户行为反馈闭环,对文案的信息密度、情绪节奏和结构可读性进行加权评估…...

新手注册Taotoken后第一步如何获取并测试API Key

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 新手注册Taotoken后第一步如何获取并测试API Key 注册Taotoken平台后,您已经拥有了一个统一的入口来调用多种大模型。接…...

Taotoken的Token Plan套餐如何帮助初创公司控制AI实验成本

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken的Token Plan套餐如何帮助初创公司控制AI实验成本 1. 成本不可预测:初创AI实验的常见困境 在产品原型和早期开…...

如何为嵌入式项目配置大模型API调用使用Taotoken与Python

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 如何为嵌入式项目配置大模型API调用使用Taotoken与Python 对于嵌入式或物联网开发者而言,在资源受限的开发环境中集成A…...

创业团队如何利用Taotoken统一管理多个AI应用API成本

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 创业团队如何利用Taotoken统一管理多个AI应用API成本 对于同时开发多个集成AI功能的初创公司而言,技术选型与快速迭代是…...

对比按量计费与Token Plan套餐如何为项目选择更优成本模型

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 对比按量计费与Token Plan套餐如何为项目选择更优成本模型 在将大模型能力集成到开发项目中时,成本控制是一个绕不开的…...

3步构建物联网数字孪生:Eclipse Ditto实战指南

3步构建物联网数字孪生:Eclipse Ditto实战指南 【免费下载链接】ditto Eclipse Ditto™: Digital Twin framework of Eclipse IoT - main repository 项目地址: https://gitcode.com/gh_mirrors/ditto6/ditto 在物联网(IoT)时代,如何高效管理成千…...

凸轮机构设计(黄老板)

1. 2. 3....

通过curl命令快速测试Taotoken不同模型的响应速度与效果

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过curl命令快速测试Taotoken不同模型的响应速度与效果 对于习惯使用命令行工具的技术人员来说,curl是一个直接且高效…...

Solr CVE-2019-0193漏洞深度解析:DataImportHandler远程代码执行原理与实战修复

1. 这个漏洞不是“能远程执行代码”那么简单,而是Solr管理员自己亲手打开的后门 Apache Solr 是企业级搜索领域绕不开的基础设施,我经手过的金融、电商、政务类项目里,有七成以上都用它做全文检索底座。但2019年爆出的 CVE-2019-0193&#xf…...

微信M4A文件打不开怎么办?m4a转MP3只需一招,小白也能操作

很多人会遇到这种情况:别人通过微信发来一段录音、会议音频、课程音频或者采访素材,文件后缀是.m4a,在微信里可能能播放,但保存到手机本地、发到电脑、导入剪辑软件或者复制到U盘后,就可能出现打不开、无法识别、格式不…...

有哪些免费好用的在线论文排版工具值得推荐?

毕业季最让人头疼的,从来都不是论文内容创作,而是繁琐的格式排版 —— 标题层级错乱、目录更新失效、参考文献格式不规范、页眉页脚混乱…… 手动调整动辄耗费数小时,还容易反复返工。其实,多款免费好用的在线论文排版工具已能完美…...

解锁硬件潜能:3步让你的电脑性能飙升50%

解锁硬件潜能:3步让你的电脑性能飙升50% 【免费下载链接】Universal-x86-Tuning-Utility Unlock the full potential of your Intel/AMD based device. 项目地址: https://gitcode.com/gh_mirrors/un/Universal-x86-Tuning-Utility 你是否曾经有过这样的经历…...

2026这6款封神降AI率工具大起底,一键把AIGC率降至安全线!

步入 2026 年,学术界的风向早已悄然转变。曾经的"降重复率"焦虑已经成了过去式,如今摆在每位学子和科研人面前的,是更棘手的"降 AI 率"挑战。随着各大高校对 AI 内容检测系统的全面升级,审核标准也愈发严苛。…...

2026降AI率工具红黑榜:AI智能降重工具怎么选?这份榜单够用!

随着AI技术在学术领域的广泛应用,论文降AIGC率、去AI痕迹成为学生和研究者必须面对的难题。红榜优先选千笔AI、ThouPen、豆包,适配国内高校AI率检测规范;黑榜避开低质免费降AI工具、无正规检测对接、改写痕迹生硬的工具,优先按需求…...

震惊!原来论文还能这样搞定?2026降AI率平台推荐合集

还在为查重高、AI痕迹明显、格式乱糟糟而抓耳挠腮?2026年论文写作早已迎来新革命,从选题构思到降AIGC率、去AI痕迹、查重优化全流程智能搞定,真正实现高效写作不卡壳,轻松应对毕业论文压力! 一、核心工具 TOP4&#xf…...

基于注意力机制的科学数据压缩:层次化架构与误差边界保证

1. 项目概述:当科学计算遇上注意力机制在计算流体动力学、气候模拟、高能物理这些前沿科学领域,每一次仿真实验都可能产生TB甚至PB级别的数据。这些数据并非杂乱无章,它们通常诞生于高度结构化的多维网格之上,每个网格点承载着一个…...

混合量子-经典机器学习在HPC环境下的性能调优与实战

1. 项目概述与核心价值在人工智能和计算科学的前沿,我们正站在一个关键的十字路口。一方面,以卷积神经网络为代表的经典机器学习模型,在处理图像识别、自然语言理解等任务上取得了巨大成功,但其对计算资源的需求正以惊人的速度膨胀…...

校准机器学习与SHAP分析:构建可信专利价值评估模型

1. 项目概述:从“黑盒”预测到“透明”评估的跨越在技术管理和投资决策领域,判断一项专利或技术的长期价值,一直是个既关键又棘手的难题。传统的专家评估方法虽然能结合行业洞见,但往往耗时费力、主观性强,且难以应对海…...

CleanMyWechat:一键解放你的PC微信存储空间

CleanMyWechat:一键解放你的PC微信存储空间 【免费下载链接】CleanMyWechat 自动删除 PC 端微信缓存数据,包括从所有聊天中自动下载的大量文件、视频、图片等数据内容,解放你的空间。 项目地址: https://gitcode.com/gh_mirrors/cl/CleanMy…...

明日方舟自动化工具终极指南:Arknights-Mower 完整使用教程

明日方舟自动化工具终极指南:Arknights-Mower 完整使用教程 【免费下载链接】arknights-mower 《明日方舟》长草助手 项目地址: https://gitcode.com/gh_mirrors/ar/arknights-mower 作为一款专为《明日方舟》玩家设计的开源自动化工具,Arknights…...

因果机器学习:从预测到干预的供应链风险管理实战

1. 项目概述:从预测到干预的供应链风险管理范式转变在供应链管理的日常工作中,我们最常听到的抱怨是什么?是“系统又预警了,但不知道该怎么办”,还是“预测模型准确率很高,但问题还是反复发生”&#xff1f…...

Unity Android打包卡在detecting sdk tools version的根因与四套解决方案

1. 这个卡在“detecting current sdk tools version”的坑,我踩了三次才摸清门道 Unity打包时卡在“detecting current sdk tools version”这行日志上,光标静止、进度条不动、CPU占用率忽高忽低——你点开Android SDK目录,发现tools文件夹里…...

高斯过程回归与离散变分原理:数据驱动的物理结构发现

1. 项目概述:当高斯过程回归遇见离散变分原理在物理信息机器学习这个交叉领域,我们常常面临一个核心挑战:如何从有限的、可能带有噪声的观测数据中,不仅还原出物理系统的动态,还能揭示其背后深刻的数学结构&#xff1f…...

遗传算法融合线性规划:超参数调优的高效双层优化策略

1. 项目概述:当遗传算法遇上线性规划,超参数调优的新思路在机器学习项目的落地过程中,有一个环节既让人着迷又令人头疼,那就是超参数调优。模型架构的层数、神经元的数量、学习率、正则化强度……这些“旋钮”的微小转动&#xff…...