当前位置: 首页 > news >正文

C++零碎记录(五)

9. 静态成员

① 静态成员就是在成员变量和成员函数前加上关键字static,称为静态成员。

② 静态成员分为:

1. 静态成员变量
--所有对象共享同一份数据
--在编译阶段分配内存
--类内声明,类外初始化
2. 静态成员函数
--所有对象共享同一个函数
--静态成员函数只能访问静态成员变量

③ 调用静态成员函数有两种方法:

1. 通过对象调用
2. 通过类名调用

9.1 静态成员变量

#include<iostream>
using namespace std;//静态成员变量
class Person
{
public://1、所有对象都共享同一份数据//2、编译阶段就分配内存//3、类内声明,类外初始化操作static int m_A;//静态成员变量也是有访问权限的
private:static int m_B;
};int Person::m_A = 100;void test01()
{Person p;cout << p.m_A << endl;Person p2;p2.m_A = 200;//100 ? 200,共享同一份数据,所以p.m_A为200cout << p.m_A << endl;
}void test02()
{//静态成员变量 不属于某个对象上,所有对象都共享同一份数据//因此静态成员变量有两种访问方式//1、通过对象进行访问Person p;cout << p.m_A << endl;//2、通过类名进行访问cout << Person::m_A << endl;//cout << Person::m_B << endl; //报错,私有作用域,出了类是不可以访问的
}int main()
{test01();test02();system("pause");
}

运行结果:

  • 100
  • 200
  • 200
  • 200
  • 请按任意键继续. . .

9.2 静态成员函数

#include <iostream>
using namespace std;//静态成员函数
//所有对象共享同一个函数
//静态成员函数只能访问静态成员变量
class Person
{
public://静态成员函数static void func(){m_A = 100; //静态成员函数可以访问静态成员变量,这个数据是共享的,只有一份,所以不需要区分哪个对象的。                                //m_B = 200; //静态成员函数不可以访问非静态成员变量,无法区分到底是哪个对象的m_B属性,非静态成员变量属于特定的对象上面cout << "static void func调用" << endl;}static int m_A; //静态成员变量int m_B; //非静态成员变量//静态成员函数也是有访问权限的
private:static void func2(){cout << "static void func2调用" << endl;}
};int Person::m_A = 0;//有两种访问方式
void test01()
{//1、通过对象访问Person p;p.func();//2、通过类名访问Person::func();   //静态成员函数,所有对象共享同一个函数,可以直接通过类名访问。//Person::func2(); //类外访问不到私有静态成员函数
}int main()
{test01();system("pause");return 0;}

运行结果:

  • static void func调用
  • static void func调用
  • 请按任意键继续. . .

9.3 成员变量和成员函数分开存储

① 在C++中,类内对的成员变量和成员函数分开存储,只有非静态成员变量才属于类的对象上。

#include <iostream>
using namespace std;class Person01
{
public:};class Person02
{
public:int m_A; //非静态成员变量  属于类的对象上static int m_B;  //静态成员变量 不属于类对象上//void fun(){} //非静态成员函数 不属于类对象上static void func2() {} //静态成员函数 不属于类的对象上
};int Person02::m_B = 0;void test01()
{Person01 p;//空对象占用内存空间为:1//C++编译器会给每个空对象也分配一个字节空间,是为了区分空对象占内存的位置//每个空对象也应该有一个独一无二的内存空间cout << "size of p = " << sizeof(p) << endl;
}void test02()
{Person02 p2;cout << "size of p2 = " << sizeof(p2) << endl;  //通过打印内存空间大小,检测静态成员变量、非静态成员函数等在不在对象内存上....      
}int main()
{test01();test02();  system("pause");return 0;}

运行结果:

  • size of p = 1
  • size of p2 = 4
  • 请按任意键继续. . .

链接:https://www.zhihu.com/question/437657370/answer/1692846096

相关文章:

C++零碎记录(五)

9. 静态成员 ① 静态成员就是在成员变量和成员函数前加上关键字static&#xff0c;称为静态成员。 ② 静态成员分为&#xff1a; 1. 静态成员变量 --所有对象共享同一份数据 --在编译阶段分配内存 --类内声明&#xff0c;类外初始化 2. 静态成员函数 --所有对象共享同一个函数…...

玩转Mysql系列 - 第16篇:变量详解

这是Mysql系列第16篇。 环境&#xff1a;mysql5.7.25&#xff0c;cmd命令中进行演示。 代码中被[]包含的表示可选&#xff0c;|符号分开的表示可选其一。 我们在使用mysql的过程中&#xff0c;变量也会经常用到&#xff0c;比如查询系统的配置&#xff0c;可以通过查看系统变…...

Windows云服务器 PHP搭建网站外网无法访问的问题

前言&#xff1a;本人在华为云上租了一台windows的云主机&#xff0c;可以远程访问桌面的那种&#xff0c;然后想搭个网站&#xff0c;最开始想到的是IIS&#xff0c;测试了下用html的文件&#xff0c;没有问题。但是&#xff0c;php文件却不能用&#xff0c;因为少了PHP环境。…...

TuyaOS Sensor Hub组件介绍

文章目录 Sensor Hub 设计思想分层设计Sensor Hub 层(tdl)Sensor Driver 层(tdd) 传感数据元素类型抽象传感器采集策略 Sensor Hub 对上数据与接口数据结构1. 数据读取的触发模式2. 元素型数据订阅规则3. 数据就绪通知回调4. 传感设备信息 应用接口1. 创建传感器实例2. 启动传感…...

【实战】React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(总结展望篇)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…...

Leetcode.321 拼接最大数

题目链接 Leetcode.321 拼接最大数 hard 题目描述 给定长度分别为 m m m 和 n n n 的两个数组&#xff0c;其元素由 0 ∼ 9 0 \sim 9 0∼9 构成&#xff0c;表示两个自然数各位上的数字。现在从这两个数组中选出 k k k ( k ≤ m n ) (k \leq m n) (k≤mn) 个数字拼接成…...

数学建模竞赛常用代码总结-PythonMatlab

数学建模过程中有许多可复用的基础代码&#xff0c;在此对 python 以及 MATLAB 中常用代码进行简单总结&#xff0c;该总结会进行实时更新。 一、文件读取 python (pandas) 文件后缀名&#xff08;扩展名&#xff09;并不是必须的&#xff0c;其作用主要一方面是提示系统是用…...

在Ubuntu上安装CUDA和cuDNN以及验证安装步骤

在Ubuntu上安装CUDA和cuDNN以及验证安装步骤 本教程详细介绍了如何在Ubuntu操作系统上安装CUDA&#xff08;NVIDIA的并行计算平台&#xff09;和cuDNN&#xff08;深度神经网络库&#xff09;&#xff0c;以及如何验证安装是否成功。通过按照这些步骤操作&#xff0c;您将能够…...

SecureCRT ssh链接服务器

SecureCRT通过密钥进行SSH登录 说明&#xff1a; 一般的密码方式登录容易被密码暴力破解。所以一般我们会将 SSH 的端口设置为默认22以外的端口&#xff0c;或者禁用root账户登录。其实可以通过密钥登录这种方式来更好地保证安全。 密钥形式登录的原理是&#xff1a;利用密钥…...

linux之perf(3)top实时性能

Linux之perf(3)top实时性能 Author&#xff1a;Onceday Date&#xff1a;2023年9月3日 漫漫长路&#xff0c;才刚刚开始… 注&#xff1a;该文档内容采用了GPT4.0生成的回答&#xff0c;部分文本准确率可能存在问题。 参考文档: Tutorial - Perf Wiki (kernel.org)perf-to…...

【linux命令讲解大全】076.pgrep命令:查找和列出符合条件的进程ID

文章目录 pgrep补充说明语法选项参数实例 从零学 python pgrep 根据用户给出的信息在当前运行进程中查找并列出符合条件的进程ID&#xff08;PID&#xff09; 补充说明 pgrep 命令以名称为依据从运行进程队列中查找进程&#xff0c;并显示查找到的进程ID。每一个进程ID以一个…...

微信小程序开发---条件渲染和列表渲染

目录 一、条件渲染 &#xff08;1&#xff09;基本使用 &#xff08;2&#xff09;block &#xff08;3&#xff09;hidden 二、列表渲染 &#xff08;1&#xff09;基本使用 &#xff08;2&#xff09;手动指定索引和当前项的变量名 &#xff08;3&#xff09;wx:key的…...

【ES6】require、export和import的用法

在JavaScript中&#xff0c;require、export和import是Node.js的模块系统中的关键字&#xff0c;用于处理模块间的依赖关系。 1、require&#xff1a;这是Node.js中引入模块的方法。当你需要使用其他模块提供的功能时&#xff0c;可以使用require关键字来引入该模块。例如&…...

Vue + Element UI 前端篇(九):接口格式定义

接口请求格式定义 前台显示需要后台数据&#xff0c;我们这里先把前后端交互接口定义好&#xff0c;没有后台的时候&#xff0c;也方便用mock模拟。 接口定义遵循几个规范&#xff1a; 1. 接口按功能模块划分。 系统登录&#xff1a;登录相关接口 用户管理&#xff1a;用户…...

部署Django报错-requires SQLite 3.8.3 or higher

记一次CentOS7部署Django项目时的报错 问题出现 在部署测试环境时&#xff0c;有需要用到一个python的后端服务&#xff0c;要部署到测试环境中去 心想这不是so easy吗&#xff0c;把本地调试时使用的python版本及Django版本在服务器上对应下载好&#xff0c;然后直接执行命…...

什么是网络存储服务器

网络存储器就像一台只有存储功能的终端&#xff0c;独立地工作&#xff0c;里面带有固定的系统&#xff0c;但可以自己设置部分参数功能&#xff0c;可以接入服务器或者电脑进行设置&#xff0c;网络存储服务器实际上就是精简的、小型化的服务器&#xff0c;同样由主板、CPU&am…...

lv3 嵌入式开发-10 NFS服务器搭建及使用

目录 1 NFS服务器介绍 1.1 NFS服务器的介绍 1.2 NFS服务器的特点 1.3 NFS服务器的适用场景 2 NFS服务器搭建 2.1 配置介绍 2.2 常见错误 3 WINDOWS下NFS服务器搭建&#xff08;扩展&#xff09; 1 NFS服务器介绍 1.1 NFS服务器的介绍 nfs&#xff08;Network File Sys…...

后流量时代的跨境风口:Facebook广告

Facebook拥有超过25亿各个年龄段和人群的每月活跃用户&#xff0c;可以帮助您接触世界各地的相关消费者。无论您是需要吸引新的潜在客户还是吸引回头客访问您的在线商店&#xff0c;Facebook广告都可以为电子商务提供丰厚的投资回报&#xff1b;无论您是在沃尔玛、eBay、亚马逊…...

Java基础学习笔记-2

前言 在计算机编程领域&#xff0c;条件语句和控制流结构是构建程序逻辑的基本组成部分。它们允许程序员根据不同的条件执行不同的操作&#xff0c;从而使程序更加灵活和智能。本文将深入探讨Java编程语言中的条件语句和控制流&#xff0c;提供了一系列实用的示例和技巧&#…...

Mongodb 安装脚本(附服务器自启动)

shell脚本 #!/bin/bash #mail:xuelanchnet.com #function:auto install mongodb [ $(id -u) ! "0" ] && echo "Error: You must be root to run this script" && exit 1 logfile"/var/log/mongod_install.log" softdir"/s…...

yolov5的pytorch配置

1. conda create -n rdd38 python3.82、pip install torch1.8.0 torchvision0.9.0 torchaudio0.8.0 -f https://download.pytorch.org/whl/cu113/torch_stable.html -i https://pypi.tuna.tsinghua.edu.cn/simple 3、conda install cudatoolkit10.2...

ISO 19712-1-2008装饰用实体面材检测

实体面材是指由聚合物材料、填料和颜料组成&#xff0c;经浇筑或压制等工艺成型的板型产品或非板型产品&#xff0c;主要用于厨房台面&#xff0c;家具等领域。 ISO 19712-1-2008装饰用实体面材测试 测试项目 测试标准 耐干热 ISO 19712-3 ISO 19712-2 耐湿热 ISO 19712-…...

华为OD机试 - 最多颜色的车辆 - 数据结构map(Java 2022Q4 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路1、核心思想2、题做多了&#xff0c;你就会发现&#xff0c;这道题属于送分题&#xff0c;为什么这样说&#xff1f;3、具体解题思路&#xff1a; 五、Java算法源码六、效果展示1、输入2、输出 华为OD机试 2023B…...

Mybatis 插入、修改、删除

前面几篇我们介绍了使用Mybatis查询数据&#xff0c;并且也了解了如何在Mybatis中使用JDK的日志系统打印日志&#xff1b;本篇我们继续介绍如何使用Mybatis完成数据的插入、修改和删除。 如果您对查询数据和Mybatis集成JDK日志系统不太了解&#xff0c;建议您先进行了解后再阅…...

2023年9月DAMA-CDGA/CDGP数据治理认证火热招生中

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…...

【SpringCloudAlibaba】Seata分布式事务使用

文章目录 分布式事务问题示例Seata概述、官网一个典型的分布式事务过程处理过程全局GlobalTransactional分布式交易解决方案流程图 Seata安装下载修改conf目录下的application.yml配置文件dashboard demo 分布式事务问题示例 单体应用被拆分成微服务应用&#xff0c;原来的三个…...

Java-day13(IO流)

IO流 凡是与输入&#xff0c;输出相关的类&#xff0c;接口等都定义在java.io包下 1.File类的使用 File类可以有构造器创建其对象&#xff0c;此对象对应着一个文件(.txt,.avi,.doc,.mp3等)或文件目录 File类对象是与平台无关的 File中的方法仅涉及到如何创建&#xff0c;…...

Vue2项目练手——通用后台管理项目第四节

Vue2项目练手——通用后台管理项目 数据的请求mock数据模拟实战文件目录src/api/mock.jssrc/api/mockServeData/home.jsmain.js 首页组件布局可视化图表可视化图表布局Home.vue echarts表Home.vue 数据的请求 mock数据模拟实战 mock官方文档 前端用来模拟后端接口的工具&…...

linux运维(二)内存占用分析

一、centos内存高&#xff0c;查看占用内存, top命令详解 1.1: free 命令是 free 单位K free -m 单位M free -h 单位Gfree最常规的查看内存占用情况的命令 1.2: 参数说明 total 总物理内存 used 已经使用的内存 free 没有使用的内存 shared 多进程共享内存 buff/cache 读写…...

go logger 不侵入业务代码 用slog 替换 zap 并实现 callerSkip

快速体验 以下是 项目中 已经用slog替换 zap 后的 logger 使用方法,无任何感知,与之前一模一样 package mainimport "github.com/webws/go-moda/logger"func main() {// 格式化打印 {"time":"2023-09-08T01:25:21.31346308:00","level&qu…...

营销型网站规划建设的七大要素/推广平台免费b2b网站大全

几日来一直在看 马维达翻译的《ACE自适配通信环境中文技术文档》&#xff0c;终于看出点名堂决定从今日开始写代码调试工作工作系统的原型。虽说动作慢了点&#xff0c;不过连续阅读了《ACE文档》和Bruce Zhang的《软件设计精要与模式》多章&#xff0c;对设计模式有了更深刻的…...

企业网站模板哪个好/广东广州重大新闻

本节书摘来异步社区《BeagleBone开发指南》一书中的第1章&#xff0c;第1.4节&#xff0c;作者&#xff1a;【爱】Derek Molloy&#xff08;莫洛伊&#xff09;&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.4 BeagleBone 配件 BeagleBone Black板配置…...

贵阳建设网站公司/新疆今日头条新闻

生成0 - 1之间的随机数 select random();生成一个1 - 10000之间的随机整数 ceil&#xff1a;得到不小于参数的最小的整数 SELECT ceil(random()*(10000-1)1) as num;floor&#xff1a;得到不大于参数的最大整数 SELECT floor(random()*(10000-1)1) as num;trunc&#xff1a;截断…...

搭建租号网的网站/在线客服系统

春节之前打算入手了一只更趁手的鼠标来打发假期的时间&#xff0c;翻了很多大佬的鼠标评测最后选择入手了酷冷至尊的MM711天狼星RGB鼠标。因为临近放假才下单&#xff0c;再加上最近众所周知的原因&#xff0c;快递走走停停直到前两天才拿到这只鼠标。在MM711之前酷冷至尊发布过…...

柳州网站建设33/seo简介

1、Ubuntu14.04 下载,打开Ubuntu官网,找到下载页面,选择要下载版本,单击“下载”。 2、跳过上面那些乱七八糟的东西 3、单击下载“download now” …...

wordpress搭建多少钱/上海专业seo服务公司

。。。。。。。。...