news 2026/4/18 7:01:55

C++之静态成员

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++之静态成员
  • C++为什么需要静态成员
  • C语言中可以通过全局变量实现数据共享,在程序的任何位置都可以访问
  • C++中希望某个类的多个对象之间实现数据共享,可以通过static建立一个被局限在类中使用的全局资源,该类型资源被称为静态成员

静态成员变量

  • 静态成员变量(可以理解为局限在类中使用的全局变量)
  • 被static修饰的成员变量即为静态成员变量
class类名{static数据类型 变量名;//声明};数据类型 类名::变量名=初值;//定义和初始化

  • 实例化对象时只实现非静态成员变量
  • 访问方式:
    • 类名::静态成员变量;
    • 对象.静态成员变量;
#include<iostream>usingnamespacestd;classA{public:intm_data;staticints_data;// 声明A(intdata=0):m_data(data){}};intA::s_data=100;//定义 并 初始化intmain(void){cout<<A::s_data<<endl;Aa1(123);cout<<"a1 size = "<<sizeof(a1)<<endl;cout<<a1.s_data<<endl;Aa2(1);a2.s_data=999;cout<<a1.s_data<<endl;return0;}

静态成员函数

  • 被static修饰的成员函数即为静态成员函数
class类名{访问控制限定符:static返回类型 函数名(形参表){...}};
  • 注意:
    • 静态成员函数可以直接定义在类的内部,也可以定义在类的外部,这一点和普通的成员函数没有区别
    • 静态成员函数没有this指针,没有const属性,可以把静态函数理解为被限制在类中使用的全局函数
    • 静态成员函数中只能访问静态成员,但是在非静态成员函数中既可以访问静态成员也可以访问非静态成员
    • 静态成员函数和静态成员变量一样,也要受到类的访问控制限定符的约束
  • 在类的外部访问静态成员函数
    • 类名::静态成员函数(实参表);
    • 对象.静态成员函数(实参表);
#include<iostream>usingnamespacestd;classA{public:intm_data;staticints_data;A(intdata=0):m_data(data){}voidfunc1(void){// func1(A *this)cout<<m_data<<endl;cout<<s_data<<endl;}staticvoidfunc2(){//静态成员函数cout<<"静态成员函数"<<endl;cout<<s_data<<endl;//cout << m_data << endl; //error}};intA::s_data=100;//定义 并 初始化intmain(void){cout<<A::s_data<<endl;A::func2();//A::func1(); //func1(&对象的地址) errorreturn0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 14:26:10

引脚统计背后的设计哲学:AD21原理图可维护性深度解析

引脚统计背后的设计哲学&#xff1a;AD21原理图可维护性深度解析 在硬件设计领域&#xff0c;原理图的可维护性往往决定了项目后期的迭代效率与团队协作的流畅度。当我们面对一个包含数千个元器件的复杂系统时&#xff0c;如何快速评估设计复杂度、预测潜在风险并优化团队协作…

作者头像 李华
网站建设 2026/4/18 5:44:38

ChatTTS库深度解析:从文本到语音的高效转换实践

ChatT 落地词&#xff1a;chattts库 从哪个角度论述&#xff1a;技术科普 标题&#xff1a;ChatTTS库深度解析&#xff1a;从文本到语音的高效转换实践 摘要&#xff1a;在开发语音交互应用时&#xff0c;如何实现高效、自然的文本到语音转换是开发者面临的常见挑战。本文深入解…

作者头像 李华
网站建设 2026/4/16 17:22:53

基于C语言的毕业设计实战:从嵌入式数据采集系统到可维护代码架构

基于C语言的毕业设计实战&#xff1a;从嵌入式数据采集系统到可维护代码架构 摘要&#xff1a;许多计算机专业学生在完成“基于C语言的毕业设计”时&#xff0c;常陷入功能堆砌、缺乏工程规范的困境。本文以一个真实的嵌入式数据采集系统为案例&#xff0c;展示如何通过模块化设…

作者头像 李华
网站建设 2026/4/13 22:15:07

ChatTTS Linux部署实战:从环境配置到避坑指南

ChatTTS Linux部署实战&#xff1a;从环境配置到避坑指南 摘要&#xff1a;本文针对开发者在Linux环境下部署ChatTTS时常见的依赖冲突、权限问题和性能瓶颈&#xff0c;提供了一套完整的解决方案。通过详细的步骤说明和可复现的代码示例&#xff0c;帮助开发者快速搭建稳定的语…

作者头像 李华
网站建设 2026/4/17 19:25:10

智能客服Agent解决方案:从零搭建高可用对话系统的实战指南

背景痛点&#xff1a;传统客服系统到底卡在哪&#xff1f; 去年我帮一家做跨境电商的小公司维护老客服后台&#xff0c;每天高峰 3k 咨询&#xff0c;客服小姐姐们疯狂敲字&#xff0c;而机器人却“装傻”—— 意图识别全靠正则&#xff0c;用户把“退货”说成“想退”&#…

作者头像 李华
网站建设 2026/4/8 15:11:55

C++图像处理毕设入门实战:从OpenCV选型到内存安全避坑指南

C图像处理毕设入门实战&#xff1a;从OpenCV选型到内存安全避坑指南 1. 背景痛点&#xff1a;为什么“跑通”比“跑快”更难 毕设季&#xff0c;实验室里最常听到的三句话&#xff1a; “代码能跑&#xff0c;但一关电脑就崩。”“我只是把师兄的代码拷过来&#xff0c;内存就…

作者头像 李华