【C++】静态成员

静态成员在 C++ 类中是一个重要的概念,它包括静态成员变量和静态成员函数。

一、静态成员变量

1.理论

  • 定义:由关键字static修饰类体中成员,称为类静态成员(static class member)。
  • 特点静态成员变量是类的所有对象共享的变量。与普通成员变量相比,无论创建了多少个类的实例,静态成员变量只有一份拷贝。
  • 初始化:静态成员变量需要在类外进行初始化,通常在类的实现文件中。
  • 访问:静态成员变量可以通过类名直接访问,不需要创建类的对象。也可以通过类的对象访问。
  • 用途:常用于存储类级别的信息(例如,计数类的实例数量)或全局数据需要被类的所有实例共享。

2.实战

#include <iostream>using namespace std;class Myclass{
public:int datas;static int staticValues;//定义一个静态成员变量
};
int Myclass::staticValues = 0;//初始化静态成员变量
int main()
{cout << Myclass::staticValues << endl;//直接对成员变量访问return 0;
}

二、静态成员函数

2.1理论

  • 定义:静态成员函数是可以不依赖于类的实例而被调用的函数。它不能访问类的非静态成员变量和非静态成员函数。
  • 访问:类似于静态成员变量,静态成员函数可以通过类名直接调用,也可以通过类的实例调用。
  • 用途:常用于实现与具体对象无关的功能,或访问静态成员变量。

2.2实战 

#include <iostream>using namespace std;
class Test{
public:void printInfor();};
class Myclass{
public:static int staticValues;//静态成员变量static int getStaticValue(){//静态成员函数return staticValues;}
};
int Myclass::staticValues = 0;//静态成员变量初始化
void Test::printInfor()
{Myclass::staticValues++;cout << Myclass::getStaticValue() << endl;//其他类的成员函数访问静态成员函数
}
int main()
{Test s1;cout << Myclass::staticValues << endl;cout << Myclass::getStaticValue() << endl;s1.printInfor();return 0;
}
存在的意义
  • 共享数据:允许对象之间共享数据,而不需要每个对象都有一份拷贝。
  • 节省内存:对于频繁使用的类,使用静态成员可以节省内存。
  • 独立于对象的功能:静态成员函数提供了一种在不创建对象的情况下执行操作的方法,这对于实现工具函数或管理类级别状态很有用。  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/776619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python实现猜数字游戏:一次编程旅程

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

Vue3+Element Plus+TS开发企业管理后台(一)

系列文章&#xff0c;讲述一个企业管理后台的前后端设计&#xff0c;持续集成常见的页面功能和服务端设计思路。 效果展示 支持多种布局、主题配色随意切换 侧边菜单背景设置 主题色调切换 移动端完美适配 菜单侧边收起&#xff0c;适合移动端小空间场景。 功能开发计划 #merm…

外包干了4年,技术退步明显。。。。

说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入上海某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&a…

【机器学习】代价函数

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f917;收录专栏&#xff1a;机器学习 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进…

【LVGL-界面切换】

LVGL-界面切换 ■ LVGL-界面切换■ 方法一&#xff1a; 删除法■ 方法二&#xff1a; 隐蔽法 ■ LVGL-界面切换 ■ 方法一&#xff1a; 删除法 当用户删除一个父对象时&#xff0c;它所有的子对象也会被一并删除。 可以调用 lv_obj_del 函数&#xff0c;直接删除基础对象&…

PD DRP+OTG 极致简单玩转边充电边传输数据

在USB2.0端口的Data Role里&#xff0c;USB根据数据传输的方向定义了Host/Device/OTG三种角色&#xff0c;其中OTG即可作为Host&#xff0c;也可作为Device&#xff0c;在Type-C中&#xff0c;也有类似的定义&#xff0c;只是名字有了些许修改。 1. DFP (Downstream Facing Po…

MySQL基础语法之判断语句的学习如何将检索数据的返回值赋值给变量,以及如何查看变量

3月25日 条件函数 条件函数 select if(1<0,正确,错误); -- 1<0是条件&#xff0c;当条件正确后&#xff0c;则放回第一个值&#xff0c;正确&#xff0c;如果错误将返回第二个值错误 select ifnull(null,hello world) -- 用于检测数据是否为空值&#xff0c;如果为空值…

__attribute__((optimize(“O0“)))阻止了编译器进行可能的性能改进

在GCC&#xff08;GNU Compiler Collection&#xff09;中&#xff0c;__attribute__((optimize("O0")))是一个函数属性&#xff0c;用于指示编译器在编译该函数时应用特定的优化级别。在这个例子中&#xff0c;O0指示编译器不进行任何优化&#xff0c;并生成最直接的…

纯前端网页播放20路海康威视、大华RTSP视频流,调用双显卡GPU加速

关于网页播放摄像头RTSP视频流&#xff0c;网上有很多免费开源方案&#xff0c;大多数是通过把在服务器端RTSP转码成HLS或者RTMP等前端可以播放的视频流&#xff0c;然后推到前端播放&#xff0c;但是大多数延迟非常高&#xff08;比如&#xff1a;HLS延迟达到十几秒&#xff0…

前端实现浏览器自定义滚动条

前言&#xff1a; 最近有个项目&#xff0c;产品觉得浏览器默认滚动条太丑了。想美化一下&#xff0c;比如自定义颜色&#xff0c;加上圆角&#xff0c;宽高都要更改一下。我查了资料和文档总结了一下 写法&#xff0c;特此记录以便之后使用。 浏览器滚动条api 总结&#xff…

YoloV5改进策略:Neck和Head改进|ECA-Net:用于深度卷积神经网络的高效通道注意力|多种改进方法|附结构图

摘要 本文使用ECA-Net注意力机制加入到YoloV5Neck和Head中。我尝试了多种改进方法&#xff0c;并附上改进结果&#xff0c;方便大家了解改进后的效果&#xff0c;为论文改进提供思路。&#xff08;改进中。。。。&#xff09; 论文&#xff1a;《ECA-Net&#xff1a;用于深度…

RN在android手机剪切图片的操作

之前写过一个React Native调用摄像头画面及拍照和保存图片到相册全流程但是这个仅限于调用摄像头拍照并保存图片,今天再写一个版本的操作,这个博客目前实现的有三点操作: 调用摄像头拍照对照片进行剪切从相册选取图片 功能上面来说有两点: 点击按钮可以对摄像头进行拍照,拍完照…

月入10.5k;36岁生物专业转行网优,选择真的比努力更重要!

张雪峰说&#xff1a;普通家庭的孩子选择专业首要要考虑的是能不能就业&#xff1f;能不能拿到高薪&#xff1f;因为除了你的父母&#xff0c;没人会对你的未来负责。 学历和专业哪个更重要&#xff1f;不同的人往往会有不同的解答&#xff0c;今天故事的主人公H先生毕业于武汉…

1.9 sys模块

python模块之sys模块 定义&#xff1a;针对python解释器相关的变量和方法 import sys #和解释器有关信息 # print(sys.version) #获取Python解释程序的版本信息 #python程序运行版本 # print(sys.maxsize) #能够表示的最大int#9223372036854775807 # print(sys.path)#检索…

2.4 死锁

1 2 3 4 5 6 7 8 9 10 11 12 13

github加速神器!解决github巨慢的问题,并且能够加速下载!另外推荐GitKraken -- 超好用的 Git 可视化工具

FastGithub github加速神器&#xff0c;解决github打不开、用户头像无法加载、releases无法上传下载、git-clone、git-pull、git-push失败等问题。 下载地址&#xff1a; 清华云盘 2 部署方式 2.1 windows-x64桌面 双击运行FastGithub.UI.exe 2.2 windows-x64服务 fastgi…

低代码与数字化转型:重塑企业技术生态的新引擎

随着科技的飞速发展&#xff0c;数字化转型已成为企业发展的重要驱动力。在这一进程中&#xff0c;低代码平台正逐渐崭露头角&#xff0c;以其高效、灵活的特性&#xff0c;助力企业加速数字化转型的步伐。本文将从低代码平台的概念、优势、应用及前景等方面进行探讨&#xff0…

工业以太网无线网桥

一、功能概述 1.1设备简介 本产品是工业以太网&#xff08;Profinet、EtherNet/IP、ModbusTCP等&#xff09;转无线设备&#xff0c;成对使用&#xff08;一对一&#xff09;&#xff0c;本产品出厂前已经配对好&#xff0c;用户不需要再配对&#xff0c;即插即用。 本产品适…

Electron应用自动更新实现及打包部署全攻略

Electron应用自动更新实现及打包部署全攻略 Electron自动更新原理配置更新服务器打包与发布更新全攻略实战步骤部署与测试部署更新测试更新流程错误处理与调试 高级特性与优化用户体验与反馈安全与隐私保护维护与持续集成性能优化结语 在现代跨平台桌面应用开发领域中&#xff…

当下国内共享办公室和国外的有什么不同

共享办公室&#xff0c;也被称为联合办公空间&#xff08;Coworking Space&#xff09;&#xff0c;是一种为自由职业者、独立承包商、初创企业以及远程工作者提供灵活、共享工作空间的办公模式。这种办公方式起源于美国硅谷&#xff0c;随着远程工作和自由职业的兴起而逐渐流行…