C++静态成员变量和静态成员函数

演示代码如下:

#include<iostream>
using namespace std;class Person
{
public://静态成员函数 所有对象共享一个函数,且只能调用静态成员变量 ******static void func(){m_A = 300;cout << "静态成员函数调用" << endl;}//静态成员变量//1 所有对象共享同一份数据//2 编译阶段就分配内存//3 类内声明,类外初始化操作 ******static int m_A;//静态成员变量和静态成员函数也有访问权限
private:static int m_B;static void fun2(){cout << "static void fun2 调用" << endl;}
};//类外初始化 ******************
int Person::m_A = 100;
int Person::m_B = 200;void test01()
{Person p1;cout << p1.m_A << endl;	Person p2;p2.m_A = 200;cout << p1.m_A << endl;//p1,p2共享静态成员变量m_A
}void  test02()
{//静态成员变量有两种访问方式//1. 通过对象进行访问Person p;cout << p.m_A << endl;//2. 通过类名进行访问cout << Person::m_A << endl;//cout << Person::m_B << endl;//报错,私有成员变量在类外无法调用
}void test03()
{Person p3;p3.func();Person::func();//Person::func2();报错,因为私有成员函数在类外无法调用
}
int main() {test01();test02();test03();
}

运行结果如下:

 总结:

静态成员变量
1 所有对象共享同一份数据
2 编译阶段就分配内存
3 类内声明,类外初始化操作

静态成员函数
1 所有对象共享一个函数
2 只能调用静态成员变量

静态成员变量和静态成员函数也有访问权限

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

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

相关文章

【MySQL进阶之路 | 高级篇】简述Bin Log日志

1. 日志类型 MySQL有不同类型的日志文件&#xff0c;用来存储不同类型的日志&#xff0c;分为二进制日志、错误日志、通用查询日志和慢查询日志&#xff0c;这也是常用的4种。MySQL 8又新增两种支持的日志:中继日志和数据定义语句日志。使用这些日志文件&#xff0c;可以查看M…

openFeign实现服务间调用

以两个模块&#xff08;batch&#xff0c;business&#xff09;为例子&#xff0c;期望实现batch调用business中的hello接口 在主程序batch中引入pom文件 <!--远程调用openfeign--><dependency><groupId>org.springframework.cloud</groupId><arti…

STK 12.9 feature highlights

STK 12.9 feature highlights The workflow for viewing, adding, deleting, and modifying an object’s active Access Constraints has been completely revamped. Using the “Active Constraints” panel in an object’s Properties Browser, you can view all active A…

Linux网络工具“瑞士军刀“集合

一、背景 平常我们在进行Linux服务器相关运维的时候&#xff0c;总会遇到一些网络相关的问题。我们可以借助这些小巧、功能强悍的工具帮助我们排查问题、解决问题。 下面结合之前的一些使用经验为大家介绍一下一些经典应用场景下&#xff0c;这个网络命令工具如何使用的。例如怎…

游泳馆押金原路退回源码解析

<dl class"list "><dd class"address-wrapper dd-padding"><div class"address-container"><cyberdiv style"color:#f0efed;font-size:14px;float:right;position:absolute;right:10px;top: 2px;">●●●<…

java的插桩

可以参考这个&#xff0c;利用Gradle Transform可以实现精准插桩&#xff1a;https://www.51cto.com/article/713694.html

后端面试题日常练-day09 【Java基础】

题目 希望这些选择题能够帮助您进行后端面试的准备&#xff0c;答案在文末 Java中的静态方法和实例方法有何区别&#xff1f; a) 静态方法可以直接通过类名调用&#xff0c;实例方法需要通过对象实例调用 b) 静态方法可以访问实例变量&#xff0c;实例方法可以访问静态变量 c)…

[Python][文件]详细讲解

目录 1.文件操作1.打开文件2.关闭文件3.写文件4.读文件 2.上下文管理器 1.文件操作 1.打开文件 使用内建函数open()打开一个文件f open(D:/test.txt, r)参数&#xff1a; 第一个参数是一个字符串&#xff0c;表示要打开的文件路径第二个参数是一个字符串&#xff0c;表示打开…

MYSQL 第三次作业

1、第三次作业 01、SELECT * FROM student; SELECT * FROM score; 02、SELECT * FROM student LIMIT 1, 3; 03、SELECT * FROM student WHERE department IN (计算机系, 英语系); 04、SELECT * FROM student WHERE birth_year > 1998; 05、SELECT department, COUNT(*) as c…

react的State生命周期

React的State和生命周期是React框架中非常重要的概念&#xff0c;它们共同协作以实现组件的动态更新和高效渲染。以下是对React的State和生命周期的详细解析&#xff1a; React的State 定义与作用&#xff1a; 状态&#xff08;State&#xff09;是React组件内部的数据源&am…

python_从sqlite导出数据至Excel

cursor.fetchall()的方式 import sqlite3 from openpyxl import Workbook# 数据库文件名 db_file D:\\desktop\\ni.db# XLSX 文件名 xlsx_file D:\\desktop\\output2.xlsx# 连接到数据库 conn sqlite3.connect(db_file) cursor conn.cursor()# 执行查询 cursor.execute(&q…

CSP-J模拟赛day1——解析+答案

题目传送门 yjq的吉祥数 题解 送分题&#xff0c;暴力枚举即可 Code #include<bits/stdc.h> using namespace std;int l,r; int num1,tmp0,q[10000],a[10000]; int k (int x){for (int j1;j<tmp;j){if (xq[j])return 0;}return 1; } int main(){while (num<100…

Linux Vim全能攻略:实战代码,轻松掌握文本编辑神器

1. Vim简介与安装 1.1 Vim的历史与发展 Vim&#xff08;Vi IMproved&#xff09;是一款高度可配置的文本编辑器&#xff0c;它起源于1976年由Bill Joy开发的Vi编辑器。Vi是Unix系统上最古老的文本编辑器之一&#xff0c;因其强大的功能和高效的编辑方式而广受欢迎。随着时间的…

Photos框架 - 自定义媒体选择器(UI预览)

引言 在前面的博客中我们已经介绍了使用媒体资源数据的获取&#xff0c;以及自定义的媒体资源选择列表页。在一个功能完整的媒体选择器中&#xff0c;预览自然是必不可少的&#xff0c;本篇博客我们就来实现一个资源的预览功能&#xff0c;并且实现列表和预览的数据联动效果。…

GLSL教程 第9章:计算着色器

目录 9.1 计算着色器的基本概念 计算着色器的主要特点&#xff1a; 9.2 计算着色器的基础知识 1. 创建计算着色器 计算着色器代码&#xff1a; 2. 编译和链接计算着色器 示例代码&#xff1a; 3. 执行计算着色器 示例代码&#xff1a; 9.3 实现并行计算和数据并行处理…

SD-WAN 的真相以及它如何支持企业数字化转型

企业需要灵活、安全的网络解决方案&#xff0c;以支持随时随地工作模式和多云策略&#xff0c;他们正在转向软件定义广域网 (SD-WAN) 技术来实现这一目标。 其操作简单、独立于运营商的 WAN 连接和改进的安全功能可提供直接云访问&#xff0c;并为安全访问服务边缘 (SASE) 策略…

字典树、并查集适用于算法竞赛

字典树 题目&#xff1a;835. Trie字符串统计 - AcWing题库 又称单词查找树&#xff0c;Trie树&#xff0c;是一种树形结构&#xff0c;是一种哈希树的变种。典型应用是用于统计&#xff0c;排序和保存大量的字符串&#xff08;但不仅限于字符串&#xff09;&#xff0c;所以…

C++初学者指南-6.函数对象--函数对象

C初学者指南-6.函数对象–函数对象 文章目录 C初学者指南-6.函数对象--函数对象函数对象示例&#xff1a;区间查询区间内的查找区间划分(分组) 指南标准库函数对象比较算术运算 函数对象 提供至少一个成员函数重载 operator() 的对象 class Multiplier {int m_; public:// cons…

还在用if校验参数?SpringBoot使用validation优雅实现参数校验

&#x1f469;&#x1f3fd;‍&#x1f4bb;个人主页&#xff1a;阿木木AEcru (更多精彩内容可进入主页观看) &#x1f525; 系列专栏&#xff1a;《Docker容器化部署系列》 《Java每日面筋》 &#x1f4b9;每一次技术突破&#xff0c;都是对自我能力的挑战和超越。 目录 一、前…

【c++】自定义函数分享:chooseBasedOnCondition函数,根据条件选择返回值

代码展示 int chooseBasedOnCondition(bool condition1, int value1, bool condition2, int value2) {if (condition1) {return value1;} else if (condition2) {return value2;} else {return 0; // 如果都不符合&#xff0c;默认返回0} }// 重载版本2&#xff1a;只接受一个…