Static修饰不同对象

news2024/11/24 13:01:45

     

目录

Static修饰局部变量

Static修饰全局变量

Static修饰函数

Static修饰成员

Static修饰成员变量

Static修饰成员函数

Static修饰成员的特性:

静态成员变量和静态成员函数的使用案例:

案例1:求1 + 2 +3+...+n

案例2:单例模式


         我们首先要知道,static修饰的对象,其存放位置和全局变量存放的位置一样,都在静态区(数据段)中。

Static修饰局部变量

        Static修饰局部变量时,让一个局部变量变为静态的局部变量,生命周期变长,下一次执行时为上一次执行后留下来的值。即保留上次局部变量的值,不销毁。这个特性可以用于函数递归,让递归时保留一些我们想要的值。

Static修饰全局变量

        修饰全局变量时改变全局变量的作用域比如:让一个可以在其他.c文件中用external引用的全局变量,只能在自己的.c/.cpp源文件内使用。出了自己的源文件外就不可使用了(将全局变量的外部链接属性改变成了内部链接属性)。

Static修饰函数

        修饰自定义函数时改变了函数的链接属性,(正常的函数是由外部链接属性的,即可以在不同的.c源文件中用external引用),使用了static之后变为内部链接属性,实际用法与全局变量一致,不可在其他.c文件中使用

Static修饰成员

Static修饰成员变量

        Static修饰的成员变量,它不属于单个对象,它属于所有对象,属于整个类。所以它不能在声明部分添加缺省值(不能在某个对象内定义)它只能在类外定义

        如果要访问到n,可以写个GetN成员函数,在类内访问到n并且返回。

Static修饰成员函数

        Static修饰的成员函数,和普通成员函数区别:没有this指针。所以static成员函数的作用一般只有一个,就是负责访问静态成员变量当我们要访问static修饰的成员变量时,只能用static修饰的成员函数来访问,使用成员函数时,要写成类域::静态成员

Static修饰成员的特性:

        1. 静态成员变量为所有类对象所共享,不属于某个具体的对象,存放在静态区

        2. 静态成员变量必须在类外定义,定义时不添加static关键字,类中只是声明

        3. 类静态成员即可用 类名::静态成员 或者 对象.静态成员 来访问

        4. 静态成员函数没有隐藏的this指针,不能访问任何非静态成员

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

静态成员变量和静态成员函数的使用案例:

案例1:求1 + 2 +3+...+n

        题目:求1 + 2 +3+...+n,要求不能使用乘除法、位操作符、for、while、if、else

//JZ64求1+2+3++n
//求1 + 2 +3+...+n,要求不能使用乘除法、位操作符、for、while、if、else
class A
{
public:
	A()
	{
		sum += c;
		c++;
	}
	//静态成员变量只能用静态成员函数访问到
	static int Getsum()
	{
		return sum;
	}
private:
	//声明两个静态成员,一个用于存总值,一个当做从1开始不断+1的变化值
	static int sum;
	static int c;
};
//定义静态成员变量
int A::sum = 0;
int A::c = 1;
//使用静态成员变量
class Solution {
public:
	int Sum_Solution(int n) {
		//n=10,正常情况下用变长数组来创建
		//A al[n];//变长数组
		//但当前版本不能使用变长数组,所以使用10来代替
		A a1[10];
		return A::Getsum();
	}
};
int main()
{
	Solution s;
	int ret=s.Sum_Solution(10);
	cout << ret << endl;
}

案例2:单例模式

        单例模式是指一个类只能创建一个对象(这个对象是全局的),即单例模式,该模式可以保证系统中该类只有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享

        根据这一特点,我们很快想到要用static修饰变量,因为static修饰的变量在类内只是声明,在类外初始化(定义),是一个全局变量,属于所有类。所以static修饰的变量也只会有一个。具体单例模式实现就不详细介绍了。

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

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

相关文章

【学术会议投稿链接】React前端框架:构建现代Web应用的强大工具

【即将截稿】第五届经济管理与大数据应用国际学术会议&#xff08;ICEMBDA 2024&#xff09;_艾思科蓝_学术一站式服务平台 更多学术会议请看&#xff1a;https://ais.cn/u/nuyAF3 目录 引言 一、React简介 二、React的核心概念 1. 组件化 2. 虚拟DOM&#xff08;Virtua…

LOID:有效提升遮挡条件下的车道检测精度

1.论文信息 论文标题&#xff1a;LOID: Lane Occlusion Inpainting and Detection for Enhanced Autonomous Driving Systems 作者&#xff1a;Aayush Agrawal, Ashmitha Jaysi Sivakumar, Ibrahim Kaif∗, Chayan Banerjee† 作者单位&#xff1a;印度马德拉斯印度理工学院&…

数学建模算法与应用 第12章 现代优化算法

目录 12.1 粒子群优化算法 Matlab代码示例&#xff1a;粒子群优化算法求解函数最小值 12.2 遗传算法 Matlab代码示例&#xff1a;遗传算法求解函数最小值 12.3 蚁群算法 Matlab代码示例&#xff1a;蚁群算法求解旅行商问题 12.4 Matlab 遗传算法工具 使用遗传算法工具箱…

java的LinkedList

java的LinkedList 什么是LinkedListLinkedList的模拟实现LinkedList的使用ArrayList和LinkedList的区别 什么是LinkedList LinkedList的官方文档 LinkedList的底层是双向链表结构&#xff0c;由于链表没有将元素存储在连续的空间中&#xff0c;元素存储在单独的结点中&#xf…

一维数组的引用

#define SIZE 5 int main(void) { int i 0; int arr[SIZE] { 86,85,85,896,45 };//同理五个数据只是偶然&#xff0c;可能会更多 //输入 for (i 0;i < SIZE;i) { printf("请输入你的第%d个值&#xff1a;",i1); scanf_s(&…

【机器学习】逻辑回归|分类问题评估|混淆矩阵|ROC曲线|AUC指标 介绍及案例代码实现

文章目录 逻辑回归逻辑回归简介逻辑回归的数学基础逻辑回归原理概念损失函数 逻辑回归API函数和案例案例癌症分类预测 分类问题评估混淆矩阵分类评估方法 - 精确率 召回率 F1ROC曲线 AUC指标案例AUC 计算的API分类评估报告api 电信客户流失预测案例 逻辑回归 逻辑回归简介 ​…

python爬虫 - 进阶正则表达式

&#x1f308;个人主页&#xff1a;https://blog.csdn.net/2401_86688088?typeblog &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、匹配中文 &#xff08;一&#xff09;匹配单个中文字符 &#xff08;二…

【网易云音乐】--源代码分享

最近写了一个网易云音乐的音乐实现部分&#xff0c;是通过JavaScript和jQuery实现的&#xff0c;具体效果大家可以参照下面的视频 源代码分享 - git地址: 网易云音乐源代码 下面将着重讲解一下音乐实现部分 视频有点模糊&#xff0c;不好意思&#xff0c;在b站上添加视频的时候…

【Oracle DB故障分享】分享一次由于SGA设置太小导致的DP备份失败

List item 今天给客户做Oracle例行数据库健康巡检&#xff0c;过程中检出一些备份异常&#xff0c;分享如下。 排查问题&#xff1a; 打开DP备份软件&#xff0c;随即弹出如下提示&#xff1a; 登录DP&#xff0c;查看备份情况&#xff1a;发现从10/6开始&#xff0c;DP备份…

ESP32—C3实现DS18B20(温度传感器)检测温度(Arduino IED )

1源代码&#xff08;DS18B20&#xff09; #include <OneWire.h> // 引入OneWire库&#xff0c;用于与单总线设备通信 #include <DallasTemperature.h> // 引入DallasTemperature库&#xff0c;用于读取DS18B20温度传感器数据// 定义连接到DS18B20数据引脚的GPIO编…

Vue入门-指令修饰符-@keyup.enter

指令修饰符&#xff1a; 通过"."指明一些指令后缀&#xff0c;不同后缀封装了不同的处理操作 ->简化代码 ①按键修饰符 keyup.enter ->键盘回车监听 ".enter"if(e.keyenter){} //".enter"用来简化代码 demo&#xff1a; <!DOCTYPE…

Ubuntu系统可以使用WIFI上网,而插网线有线网不能上网,网卡驱动未安装问题解决

文章目录 问题分析解决结果 问题 linux ubuntn系统下可以正常连WiFi上网&#xff0c;但是不能插网线上网。 分析 首先要排除是否为硬件问题&#xff0c;我在windows下是可以正常使用网线的&#xff0c;所以排除硬件的问题。 查看网卡是否被检测(wifi有说明网卡是有检测的) …

有了WPF后Winform还有活路吗?

近年来&#xff0c;随着技术的不断发展&#xff0c;Windows Presentation Foundation&#xff08;WPF&#xff09;和Windows Forms&#xff08;WinForms&#xff09;这两种技术在开发桌面应用程序方面一直备受关注。虽然WPF以其强大的功能和灵活性吸引了众多开发者&#xff0c;…

【iOS】YYModel的初步学习

YYModel的初步学习 文章目录 YYModel的初步学习前言与JSONModel对比YYModel的优势如何使用YYModel最简单的Model形式容器类属性白名单和黑名单Model的嵌套 小结 前言 随着时代的发展&#xff0c;iOS解析JSON数据的第三方库越来越多&#xff0c;原先的JSONModel的性能上的问题逐…

【动手学深度学习】6.4 多输入多输出通道

彩色图像具有标准的RBG通道来代表红绿蓝&#xff0c;但是到目前位置我们仅展示了单个输入和单个通道的简化例子。这使得我们可以将输入&#xff0c;卷积核和输出看作二维张量而当我们添加通道时&#xff0c;输入和隐藏表示都变成了三维张量。例如每个RGB输入图像都具有 3 h …

工具篇-完整的 Git 项目管理工具教程(在命令框中使用 Git、在 IDEA 中使用 Git)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 Git 概述 2.0 Git 的安装和配置 3.0 获取本地仓库 3.1 基础操作指令 3.2 分支 4.0 Git 远程仓库 4.1 创建远程仓库 4.2 配置 SSH 公钥 4.3 操作远程仓库 5.0 使用…

活动预告|博睿数据将受邀出席GOPS全球运维大会上海站!

第二十四届 GOPS 全球运维大会暨研运数智化技术峰会上海站将于2024年10月18日-19日在上海中庚聚龙酒店召开。大会将为期2天&#xff0c;侧重大模型、DevOps、SRE、AIOps、BizDevOps、云原生及安全等热门技术领域。特设了如大模型 运维/研发测试、银行/证券数字化转型、平台工程…

Qt-系统处理窗口移动和大小改变相关事件(60)

目录 描述 使用 补充&#xff1a;事件分发 / 事件过滤 描述 移动和改变窗口大小事件 使用 重写事件 移动窗口位置 改变窗口大小 补充&#xff1a;事件分发 / 事件过滤 这个属于事件背后的逻辑&#xff0c;可以让程序员有更多的操作&#xff0c;不过要小心使用&#xff0c…

凸函数 (Convex Function)

文章目录 1.凸函数定义2. 凸函数和非凸函数的图示3.闭凸函数 1.凸函数定义 凸函数是指在其图像上的任意两个点之间画一条线&#xff0c;这条线始终不会低于函数图像。其数学定义为对于任何两个点 x x x 和 y y y&#xff0c;以及 λ ∈ [ 0 , 1 ] \lambda \in [0,1] λ∈[0,…

51单片机的智能温控风扇【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机LCD1602显示模块温度传感器步进电机按键、蜂鸣器、LED等模块构成。适用于智能风扇调速等相似项目。 可实现功能: 1、LCD1602实时显示温度、自动/手动和风扇风力等级 2、温度传感器DS18B20采集温度信息 3、手动模式&#xff1a;可…