【C++】静态成员变量和静态成员函数(static)

news2024/9/23 5:34:01

为了实现多个类公用一个成员变量或函数诞生了static,静态成员变量和静态成员函数。

static成员变量

格式

class A
{
public:
	static 静态成员变量类型 静态成员名;        
    }
}
  1. 静态成员变量必须在类外进行初始化,类内初始化会报错
class A {
private:
	static int x ;
};

int A::x = 0;

int main()
{
	A a();
	return 0;
}
  1. 静态成员变量是属于此类,而不属于此类的某个对象,所以这个静态成员变量只有一个,存放在静态区。

  2. 因为静态变量属于整个类,所以既可以用类对象.静态变量,也可以直接用类类型::静态变量

  3. 静态成员也是类的成员,受public、protected、private 访问限定符的限制

static成员函数

格式

class A
{
public:
	static 返回值类型 函数名(参数类型1 参数1.....) ;        
    }
}
  • 前四条特性与static成员变量相同
    • 五、静态成员函数没有隐藏的this指针,所以不能调用非静态的成员。
      • static静态成员函数不能调用非静态成员函数
      • 非静态成员函数可以调用static静态成员函数

static练习

求1+2+3+…+n_牛客题霸_牛客网 (nowcoder.com)

在这里插入图片描述

答:

class Solution {
    class Sum{
        friend int Sum_Solution(int n);
    public:    
        Sum()
        {
            tmp++;
            ret+=tmp;
        }
    };

public:
    int Sum_Solution(int n) {
        Sum S[n];
        return ret;
    }
private:  
        static int tmp;
        static int ret;
};
int Solution::tmp = 0;
int Solution::ret=0;

img

✨本文收录于C++语法及练习

当你喜欢一篇文章时,点赞、收藏和关注是最好的支持方式。如果你喜欢我的文章,请不要吝啬你的支持,点赞👍、收藏⭐和关注都是对我最好的鼓励。感谢你们的支持!如有问题欢迎指正!

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

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

相关文章

氢气传感器TGS2616在氢燃料电池行业的应用

氢燃料电池是一种将氢气和氧气的化学能直接转换成电能的发电装置。其基本原理是电解水的逆反应,把氢和氧分别供给阳极和阴极,氢通过阳极向外扩散和电解质发生反应后,放出电子通过外部的负载到达阴极。 氢燃料电池具有无污染、噪声低、高效率…

excel根据数据批量创建并重命名工作表

需求 根据一列数据,批量创建并重命名工作表 做法 1. 右键该sheet,选择查看代码 2. 输入VBA代码 正向创建 Sub create_sheets_by_col()Dim num% 定义为integer*num Application.WorksheetFunction.CountA(Sheet1.Range("A:A")) num是非空…

unity宏编译版本

在写c程序的时候我们通常可以用不同的宏定义来控制不同版本的编译内容,最近有个需求就是根据需要编译一个完全体验版本,就想到了用vs的那套方法。经过研究发现unity也有类似的控制方法。 注意这里设置完后要点击右下的应用,我起先就没有设置…

Docker 安装ros 使用rviz 等等图形化程序

Docker 安装ros 使用rviz 等等图形化程序 ubuntu 版本与ros 发行版本对应 如何安装其它版本ros 此时考虑使用docker 易于维护 地址: https://hub.docker.com/r/osrf/ros 我主机是 ubuntu22.04 使用这个标签 melodic-desktop-full 1 clone 镜像到本机 docker pu…

云原生简单综合实验

需求:左边服务器搭建一个web服务,名字为www.rhce.com,目录/nfs/rhce为右边服务器共享的/rhce目录 搭建一个dns解析rhce.com域 右边开启autofs服务为左边服务器提供目录 第一步下载相关软件 左边服务器 [rootnode ~]# yum install nginx…

Vue 新指令 v-memo 案例精析与性能优化

v-memo 用于缓存组件的渲染结果。它通过指定依赖项来决定何时重新渲染组件,只有当依赖项的值发生变化时,组件才会重新渲染,从而提高性能。 使用场景:v-memo 适用于组件的渲染结果在依赖项不变的情况下不应该频繁更新的场景&#x…

Windows 虚拟机服务器项目部署

目录 一、部署JDK下载JDK安装JDK1.双击 jdk.exe 安装程序2.点击【下一步】3.默认安装位置,点击【下一步】4.等待提取安装程序5.默认安装位置,点击【下一步】6.等待安装7.安装成功,点击【关闭】 二、部署TomcatTomcat主要特点包括:…

抖音视频图文根据ID获得评论信息网站源码

抖音视频图文根据ID获得评论信息单页源码,id是视频的id,可以自定义第几条评论开始,不填默认为0,评论数量最大数量50,默认是20。 接口返回参数: "comments": 评论信息集合 { "uid": 评…

【Android面试八股文】请描述一下 android 的系统架构?

Android 是一个基于 Linux 的开源软件堆栈,针对多种不同设备类型打造。下图显示了 Android 平台的主要组件。 早期的Android架构如下图所示 官方网站最新的Android平台架构图,如下所示: Linux 内核 Android 平台的基础是 Linux 内核。例如,Android 运行时 (ART) 依赖…

重生奇迹MU 群战王牌

圣导师是重生奇迹MU游戏中八大职业之一,拥有风度翩翩、潇洒自如的形象和神一样的实力。无论是刷怪、PK、打boss还是混战,圣导师都表现出压制其他职业的强大气势。因此,这个职业在游戏中备受欢迎,人气非常高。 实力强大的二代隐藏…

<数据集>钢板缺陷检测数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:1986张 标注数量(xml文件个数):1986 标注数量(txt文件个数):1986 标注类别数:7 标注类别名称:[crescent gap, silk spot, water spot, weld line, oil spot, punchin…

代码检查规则语言CodeNavi中代码语句的节点和节点属性

本文分享至华为云社区《CodeNavi 中代码语句的节点和节点属性》。作者:Uncle_Tom 1. 前期回顾 《寻找适合编写静态分析规则的语言》 根据代码检查中的一些痛点,提出了希望寻找一种适合编写静态分析规则的语言。 可以满足用户对代码检查不断增加的各种需求…

电脑摄像头可以用手机的吗?虚拟摄像头如何下载安装使用?超详细解答

一、电脑摄像头是否可以用手机摄像头代替? 随着电子设备研究的不断发展,电脑与手机之间的连接与互动已经变得越来越便捷。那么,关于电脑摄像头是否可以用手机的问题,答案是肯定的。不过,这通常需要通过一些特定的软件…

CUDA编程 - clock 学习记录

clock 学习记录 一、完整代码二、核函数流程三、main 函数流程四、学习总结(共享内存的声明和使用):4.1、例子4.2、数据从全局内存复制到共享内存: 该程序利用CUDA并行计算能力,执行归约操作以找到每个块内的最小值&am…

PyTorch论文

2019-12 PyTorch: An Imperative Style, High-Performance Deep Learning Library 设计迎合4大趋势: 1. array-based (Tensor) 2. GPU加速 3. 自动求导 (Auto Differentiation) 4. 拥抱Python生态 4大设计原则: 1. 使用算法和数据开发者熟悉的Python做编…

IDEA Tomcat环境配置(CATALINA_BASE、乱码encoding)

IDEA Tomcat环境配置(CATALINA_BASE、乱码encoding) 基础配置 在idea中启动tomcat,默认会在用户目录生成一堆临时运行目录,因为他读的CATALINA_BASE为用户目录 如何处理 在tomcat配置里面的Stratup/Connection里面分别为Run和Debug在Pass environment v…

Profibus_DP转ModbusTCP网关模块连马保与上位机通讯

Profibus转ModbusTCP网关模块(XD-ETHPB20)广泛应用于工业自动化领域。例如,可以将Profibus网络中的传感器数据转换为ModbusTCP协议,实现数据的实时监控和远程控制。本文介绍了如何利用Profibus转ModbusTCP网关(XD-ETHP…

【Linux】进程信号详解

一、信号 1. 信号的概念 Linux提供的让用户或进程给其他进程发送异步信息的一种方式,信号由进程发送的,属于软件中断。 2. 信号的作用 当 进程执行出现致命错误 或 进程所需的软件条件不具备 时,给操作系统提供的一种及时终止进程的机制当用…

【qt】考试系统项目

话不多说,先一睹芳颜 咱们的账号,题库和答案都是通过文件获取的. 话不多说,直接开干 目录 一.登录窗口1.界面设计2.邮箱验证3.登录验证 二.题库窗口1.考试计时2.布局管理器3.题库显示4.按钮布局5.计算分数 三.窗口交互四.完整代码五.结语 一.登录窗口 1.界面设计 这里添加背…

跟着操作,解决iPhone怎么清理内存难题

在如今智能手机功能日益强大的时代,我们使用手机拍照、录制视频、下载应用、存储文件等操作都会占用手机内存。当内存空间不足时,手机运行会变得缓慢,甚至出现卡顿、闪退等现象。因此,定期清理iPhone内存是非常必要的。那么&#…