c++静态成员变量与静态成员函数

news2025/1/4 17:41:28

 一、静态成员变量

1、说明

        1.1、所有对象共享同一份静态变量
        1.2、编译阶段分配内存
        1.3、类内声明,类外初始化操作

静态成员变量,不属于某个具体的类对象,多有的类对象共享同一份数据
因此静态成员变量有两种方式访问

2、访问方式

        2.1、通过对象进行访问

Persion p; 
cout << p.m_Age << endl;

        2.2、通过类名访问类的静态成员变量

cout <<"test02:" << Persion::m_Age << endl;//100

 3、访问权限

         3.1静态成员变量同样适用类的访问权限

public:
	//一定记得public还是private访问权限的问题
	static int m_Age;
#include <iostream>
#include <string.h>
using namespace std;

//静态成员变量
//1、所有对象共享同一份静态变量
//2、编译阶段分配内存
//3、类内声明,类外初始化操作
class Persion
{
	
public:
	
	//一定记得public还是private访问权限的问题
	static int m_Age;

	
};
//记得添加类型
int Persion::m_Age = 10;

void test()
{
	Persion p1;
	cout << p1.m_Age << endl;//10
	Persion p2;
	p2.m_Age = 100;
	cout << p1.m_Age << endl;//100
}
void test02()
{
	//静态成员变量,不属于某个具体的类对象,多有的类对象共享同一份数据
	//因此静态成员变量有两种方式访问
	//1、通过对象进行访问
	//Persion p; 
	//cout << p.m_Age << endl;
	//通过类名访问类的静态成员变量
	cout <<"test02:" << Persion::m_Age << endl;//100
}
void main()
{
	test();
	test02();


}

 

二、静态成员函数 

        1.1说明 

静态成员函数
1.1、所有对象共享一个静态成员函数
1.2、静态成员函数只能访问静态成员耐属性(可以用作单利模式)

#include <iostream>
#include <string.h>

using namespace std;

//静态成员函数
//1、所有对象共享一个静态成员函数
//2、静态成员函数只能访问静态成员耐属性(可以用作单利模式)
class Persion
{
public:
	static int m_Age;
	string name = "WQ";
	static void func()
	{
		m_Age = 100;
		cout << m_Age << endl;
		//cout << name << endl;//err
	}
	 void func02()
	{
		cout << m_Age << endl;//18
		cout << name << endl;//WQ
	}
	
};
int Persion::m_Age = 18;
void main()
{
	//1、通过对象调用静态函数
	Persion p;
	p.func();
	p.func02();
	//2、通过,类名访问
	Persion::func();
	//Persion::func02();//err

}

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

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

相关文章

阿里云大数据实战记录10:Hive 兼容模式的坑

文章目录 1、前言2、什么是 Hive 兼容模式&#xff1f;3、为什么要开启 Hive 模式&#xff1f;4、有什么副作用&#xff1f;5、如何开启 Hive 兼容模式&#xff1f;6、该场景下&#xff0c;能不能不开启 Hive 兼容模式&#xff1f;7、为什么不是DATE_FORMAT(datetime, string)&…

【小记录】jupyter notebook新版本

手欠升级 &#x1f605;今天手贱&#xff0c;在anaconda navigator里面更新了最新版本的spyder&#xff0c;然后莫名奇妙地jupyter notebook就打不开了&#x1f605;&#xff0c;报错说缺少模块”ModuleNotFoundError: No module named jupyter_server.contents“&#xff0c;…

给微信小程序添加隐私协议

前些日子&#xff0c;微信官方针对用户的安全信息又进行了增强&#xff0c;这次更新几乎要求所有的小程序都需要进行整改&#xff0c;只要是涉及到用户的隐私的小程序都需要进行整改&#xff0c;这次整改是强制性的。 点开相关指引之后会跳转到下面的链接&#xff1a;参考链接…

解决php导出excel中小数尾部0不显示的问题

调整代码前&#xff1a; 新增代码&#xff1a; //小数避免末尾0不显示的问题 foreach ($list as &$line) {foreach ($line as &$column) {if (is_numeric($column) && strpos($column, .)!false) {$column " {$column} ";}} } 效果&#xf…

【【萌新的riscV的学习之关于risc指令集的学习使用总五】】

萌新的riscV的学习之关于risc指令集的学习使用总五 opcode&#xff08;操作码&#xff09; 指令的基本操作 rd目的操作数寄存器 用来存放操作结果 funct3 一个另外的操作码字段 rs1: 第一个源操作数寄存器 rs2: 第二个源操作数寄存器 funct7: 一个另外的操作码字段 还有一种I型…

ApplicationContext实现

基于classpath下的xml格式的配置文件来创建bean对象 java代码 package com.example;import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.context.support.Fi…

力扣刷题班 第3课 02-分治与回溯算法

分治&#xff08;例题1&#xff09;九键电话号码的字母组合 电话号码的字⺟组合 给定⼀个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字⺟组合。答案可以按 任意顺序 返回。 给出数字到字⺟的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字…

【计算机视觉】Image Feature Extractors方法介绍合集(二)

文章目录 一、Mixed Depthwise Convolution二、Deformable Kernel三、Dynamic Convolution四、Submanifold Convolution五、CondConv六、Active Convolution七、Depthwise Dilated Separable Convolution八、Involution九、Dilated convolution with learnable spacings十、Att…

Elastic Stack 8.10:更简单的跨集群搜索和身份验证等等

作者&#xff1a;Tyler Perkins, Gilad Gal, Shani Sagiv, George Kobar, Michael Peterson, Aris Papadopoulos Elastic Stack 8.10 增强了跨集群和向量搜索、数据摄取、Kibana 和云注册。 配置远程搜索时获得更大的灵活性&#xff0c;并提供更多信息来分类问题&#xff0c;…

小白备战大厂算法笔试(八)——搜索

搜索 二分查找 二分查找是一种基于分治策略的高效搜索算法。它利用数据的有序性&#xff0c;每轮减少一半搜索范围&#xff0c;直至找到目标元素或搜索区间为空为止。 Question&#xff1a; 给定一个长度为n的数组 nums &#xff0c;元素按从小到大的顺序排列&#xff0c;数组…

git基本手册

Git and GitHub for Beginners Tutorial - YouTube Kevin Stratvert git config --global user.name “xxx” git config --global user.email xxxxx.com 设置默认分支 git config --global init.default branch main git config -h查看帮助 详细帮助 git help config 清除 cl…

计网第五章(运输层)(二)(端口号、复用和分用)

一、端口号 &#xff08;1&#xff09;基本概念 在上部分&#xff08;计网第五章&#xff08;运输层&#xff09;&#xff08;一&#xff09;_永无魇足的博客-CSDN博客&#xff09;提到运输层用不同的端口对应不同的应用进程。 端口就是用来区分不同应用进程的标识符。 每个…

HarmonyOS/OpenHarmony应用开发-DevEco Studio新建项目的整体说明

一、文件-新建-新建项目 二、传统应用形态与IDE自带的模板可供选用与免安装的元服与IDE中自带模板的选择 三、以元服务&#xff0c;远程模拟器为例说明IDE整体结构 1区是工程目录结构&#xff0c;是最基本的配置与开发路径等的认知。 2区是代码开发与修改区&#xff0c;是开发…

分支分支分支分支

分支 查看分支 git branch -v 创建分支 git branch 分支名 切换分支 git checkout 分支名 合并分支 git merge 分支名 把指定的分支合并到当前分支上

【CMU15-445 Part-11】Join Algorithms

Part11-Join Algorithms Why Do We Need to Join? Join其实是关系数据库和范式化表时候所产生的副产物。 也就是说我们范式化表是为了减少冗余信息&#xff0c;而我们使用join就是为了去重建reconstruct 这些原本的tuple Join Algorithms 主要关注两表的inner equijoin a…

UE5学习笔记(1)——从源码开始编译安装UE5

目录 0. 前期准备1. Git bash here2. 克隆官方源码。3. 选择安装分支4. 运行Setup.bat&#xff0c;下载依赖文件5. 运行GenerateProjectFiles.bat生成工程文件6. 生成完成&#xff0c;找到UE5.sln/UE4.sln7. 大功告成 0. 前期准备 0.1 在windows的话&#xff0c;建议装一个Git…

基于SpringBoot的驾校管理系统

基于SpringBootVue的驾校管理系统、前后端分离 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 【主要功能】 角色&#xff1a;管理员、用户、教练 管理员&#x…

Python 可迭代对象、迭代器、生成器

可迭代对象 定义 在Python的任意对象中&#xff0c;只要它定义了可以返回一个迭代器的 __iter__ 魔法方法&#xff0c;或者定义了可以支持下标索引的 __getitem__ 方法&#xff0c;那么它就是一个可迭代对象&#xff0c;通俗的说就是可以通过 for 循环遍历了。Python 原生的列…

(手撕)数据结构--->堆

文章内容 目录 一&#xff1a;堆的相关概念与结构 二&#xff1a;堆的代码实现与重要接口代码讲解 让我们一起来学习:一种特殊的数据结构吧&#xff01;&#xff01;&#xff01;&#xff01; 一&#xff1a;堆的相关概念与结构 在前面我们已经简单的学习过了二叉树的链式存储结…

城市管网污水监测方案,科技助力污水排放管理!

根据《国务院办公厅关于加强入河入海排污口监督管理工作的实施意见》各地要明确“水污染&#xff0c;谁治理”和政府兜底的原则&#xff0c;明确排污主体责任。根据排污口类型集中整治&#xff0c;划分主体。加大私设暗管借道排污的监察力度溯源主体责任。加强科技研发&#xf…