news 2026/10/25 9:24:57

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/10/19 9:29:51

从工业质检到艺术创作:Halcon边缘提取技术的跨界应用探索

从工业质检到艺术创作&#xff1a;Halcon边缘提取技术的跨界应用探索 当工业视觉检测领域的Halcon边缘提取技术遇上艺术创作与文物保护&#xff0c;会碰撞出怎样的火花&#xff1f;传统认知中&#xff0c;Halcon作为机器视觉领域的标杆工具&#xff0c;其亚像素级边缘检测能力…

作者头像 李华
网站建设 2026/10/25 5:06:56

细胞多尺度仿真软件:CellBlender_(2).CellBlender软件安装与配置

CellBlender软件安装与配置 1. CellBlender简介 CellBlender 是一个强大的细胞多尺度仿真软件&#xff0c;它集成了 Blender 三维建模和动画功能&#xff0c;提供了高度可视化的用户界面&#xff0c;使得研究人员可以方便地构建复杂的细胞环境并进行仿真。CellBlender 的主要…

作者头像 李华
网站建设 2026/10/25 23:07:18

LLM+RAG+知识图谱构建AI智能客服:架构设计与工程实践

LLMRAG知识图谱构建AI智能客服&#xff1a;架构设计与工程实践 把客服机器人从“答非所问”改造成“秒懂人话”&#xff0c;只需要把 LLM、RAG 和知识图谱拼成一条流水线——但怎么拼、在哪拐弯、哪里容易翻车&#xff0c;这篇笔记一次说清。 一、传统客服到底卡在哪&#xff1…

作者头像 李华
网站建设 2026/10/25 5:10:21

毕设园区网络设计入门:从拓扑规划到基础配置的完整实践指南

毕设园区网络设计入门&#xff1a;从拓扑规划到基础配置的完整实践指南 第一次把“园区网络”四个字写进毕业设计任务书时&#xff0c;我满脑子都是“交换机怎么连”“IP 怎么分”“会不会一插就环路”——结果真动手后&#xff0c;广播风暴、地址冲突、ACL 写错一个号直接把自…

作者头像 李华
网站建设 2026/10/22 18:08:35

LabVIEW迈克耳孙干涉虚拟仿真

LabVIEW构建高保真迈克耳孙干涉实验虚拟仿真平台&#xff0c;完美复刻真实实验的光路原理、操作逻辑与数据计算流程。解决传统光学实验受时空限制、仪器损耗大、原理抽象难懂等&#xff0c;通过 LabVIEW 的模块化设计与交互优势&#xff0c;实现 “原理可视化、操作具象化、数据…

作者头像 李华
网站建设 2026/10/22 4:48:58

ChatGPT 工作原理深度解析:从模型架构到实战优化

背景与痛点&#xff1a;为什么“调一下接口”并不简单 把 ChatGPT 塞进业务系统&#xff0c;很多团队第一步都是“先调个接口看看”。结果真实场景里&#xff0c;响应延迟、上下文漂移、token 爆表 这三座大山立刻出现&#xff1a; 延迟&#xff1a;国内网络到 OpenAI 平均 3…

作者头像 李华