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

静态成员,友元函数

🐶博主主页:@ᰔᩚ. 一怀明月ꦿ 

❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C++

🔥座右铭:“不要等到什么都没有了,才下定决心去做”

🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀

目录

🐰静态数据成员

🌸静态数据成员的声明:

🌸静态数据成员的初始化:

🌸静态数据成员的访问:

🐰静态成员函数

🌸静态成员函数的声明

🌸静态数据成员函数的访问

🐰友元函数

友元函数的声明


🐰静态数据成员

静态数据成员在内存中只占一份空间(而不是每个对象都分别为它保留一份空间),它是属于类的,但它被类的所有对象所共享,每个对象都可以访问这个静态数据成员。若改变它的值,则在各对象中这个数据成员的值同时改变了,静态数据成员系统单独为它开辟一段空间,不属于任何对象,程序结束空间才会被释放。

🌸静态数据成员的声明:

static 数据类型 变量名;

🌸静态数据成员的初始化:

静态数据成员的初始化,静态数据成员的初始化一定在类外。
数据类型 类名::变量名=初值;
注意:不要在类的静态数据成员声明时进行初始化,一定要在类外初始化!!!,如果没有初始化静态数据成员,系统自动给它赋值为0.

🌸静态数据成员的访问:

(1)通过对象名进行访问
对象名.静态数据成员的变量名
(2)通过类名进行访问
类名::静态数据成员的变量名
注意:类的复合复制构造函数(默认的复制构造函数)并不能处理静态数据成员。需要自己提供的复制构造函数去处理静态数据成员

🐰静态成员函数

🌸静态成员函数的声明

静态成员函数的声明:就是在普通的成员函数前面加一个static
static 返回类型 函数名(参数列表);

🌸静态数据成员函数的访问

类名::函数名()对象.函数名()
注意:
(1)静态成员函数与非静态的成员函数的根本区别:非静态函数有this指针,而静态成员函数没有this指针,因而静态成员函数不能默认访问本类的非静态数据成员。
当调用一个对象的非静态的成员函数时,系统会把该对象的起始地址赋给成员函数的this指针。
(2)静态成员函数可以直接访问静态数据成员。在C++程序中静态成员函数主要是访问静态数据成员,不访问静态数据成员
例外:
Student s1;
int age ;int score ;age和score都是非静态的数据成员
static void print()
{
    Cout<<s1.age<<s1.score<<endl;
}
在当前作用域是合法的。

🐰友元函数

友元函数不是当前类的成员函数,而是独立于当前类的外部函数,但他可以访问该类对象的任何成员,包括私有成员、公有成员和保护成员。

友元函数的声明

友元函数的声明时,只要在声明语句的最前面加上关键字friend。 声明可以放在类的任何成员属性里(私有部分、公有部分和保护部分) 
friend 返回类型 函数名(类名 &引用名...)friend void print(Student &temp); 
注意:
(1)声明一个友元函数,就可以用这个函数直接访问该类的私有数据,从而提高了运行效率。
(2)友元函数提供了不同类的成员函数之间、类的成员函数与普通函数之间进行数据共享
(3)一个类的成员函数也可以作为另一个类的友元,一个类的成员函数作为另一个类的友元函数时,必须先定义这个类(作成员函数的类)

🌸🌸🌸如果大家还有不懂或者建议都可以发在评论区,我们共同探讨,共同学习,共同进步。谢谢大家! 🌸🌸🌸   

相关文章:

静态成员,友元函数

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C &#x1f525;座右铭&#xff1a;“不要等到什么都没有了&#xff0c;才下…...

数学分析课程笔记(张平):函数

01 函数 \quad作为数学分析的第一节课&#xff0c;首先深入了解一下函数。 \quad翻看一些教材可以发现&#xff0c;有些教材将“函数”与“映射”区分为两个概念&#xff0c;有些教材&#xff08;尤其是前苏联时期的一些教材&#xff09;则将其视为一个概念。实际上&#xff0c…...

spring事务 只读此文

文章目录一. 事务概述1.1. MySQL 数据库事务1.2 spring的事务支持:1.2.1 编程式事务&#xff1a;1.2.2 声明式事务1.2.3 事务传播行为&#xff1a;1.2.4 事务隔离级别1.2.5 事务的超时时间1.2.6 事务的只读属性1.2.7 事务的回滚策略二. spring事务&#xff08;注解 Transaction…...

真实的软件测试日常工作是咋样的?

最近很多粉丝问我&#xff0c;小姐姐&#xff0c;现在大环境不景气&#xff0c;传统行业不好做了&#xff0c;想转行软件测试&#xff0c;想知道软件测试日常工作是咋样的&#xff1f;平常的工作内容是什么&#xff1f; 别急&#xff0c;今天跟大家细细说一下一个合格的软件测…...

【UML】软件需求说明书

目录&#x1f981; 故事的开端一. &#x1f981; 引言1.1编写目的1.2背景1.3定义1.4参考资料二. &#x1f981; 任务概述2.1目标2.2用户的特点2.3假定和约束三. &#x1f981; 需求规定3.1 功能性需求3.1.1系统用例图3.1.2用户登录用例3.1.3学员注册用例3.1.4 学员修改个人信息…...

面试官:html里面哪个元素可以让文字换行展示

在HTML中&#xff0c;可以使用 <br> 元素来强制换行&#xff0c;也可以使用CSS的 word-break 或 white-space 属性来实现自动换行。以下是这些方法的具体说明&#xff1a; 1.使用 <br> 元素 <br> 元素可以在文本中插入一个换行符&#xff0c;使文本从该位置…...

XGBoost和LightGBM时间序列预测对比

XGBoost和LightGBM都是目前非常流行的基于决策树的机器学习模型&#xff0c;它们都有着高效的性能表现&#xff0c;但是在某些情况下&#xff0c;它们也有着不同的特点。 XGBoost和LightGBM简单对比 训练速度 LightGBM相较于xgboost在训练速度方面有明显的优势。这是因为Ligh…...

JVM高频面试题

1、项目中什么情况下会内存溢出&#xff0c;怎么解决&#xff1f; &#xff08;1&#xff09;误用固定大小线程池导致内存溢出 Excutors.newFixedThreadPool内最大线程数是21亿(2) 误用带缓冲线程池导致内存溢出最大线程数是21亿(3)一次查询太多的数据&#xff0c;导致内存占用…...

Windows环境下实现设计模式——状态模式(JAVA版)

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天总结一下Windows环境下如何编程实现状态模式&#xff08;设计模式&#xff09;。不知道大家有没有这样的感觉&#xff0c;看了一大堆编程和设计模式的书&#xff0c;却还是很难理解设计模式&#xff0c;无…...

【总结】多个条件排序(pii/struct/bool)

目录 pii struct bool pii 现在小龙同学要吃掉它们&#xff0c;已知他有n颗苹果&#xff0c;并且打算每天吃一个。 但是古人云&#xff0c;早上金苹果&#xff0c;晚上毒苹果。由此可见&#xff0c;早上吃苹果和晚上吃苹果的效果是不一样的。 已知小龙同学在第 i 天早上吃苹果能…...

基于stm32mp157 linux开发板ARM裸机开发教程Cortex-A7 开发环境搭建(连载中)

前言&#xff1a;目前针对ARM Cortex-A7裸机开发文档及视频进行了二次升级持续更新中&#xff0c;使其内容更加丰富&#xff0c;讲解更加细致&#xff0c;全文所使用的开发平台均为华清远见FS-MP1A开发板&#xff08;STM32MP157开发板&#xff09;针对对FS-MP1A开发板&#xff…...

最适合游戏开发的语言是什么?

建议初学者学习主流的开发技术 主流开发技术有大量成熟的教程、很多可以交流的学习者、及时的学习反馈等&#xff1b;技术的内里基本都是相同的&#xff0c;学习主流技术的经验、知识可以更好更快地疏通学习新知识和技术。 因此&#xff0c;对C#或者C二选一进行学习较好。 Un…...

C语言刷题(7)(字符串旋转问题)——“C”

各位CSDN的uu们你们好呀&#xff0c;今天&#xff0c;小雅兰的内容依旧是复习之前的知识点&#xff0c;那么&#xff0c;就是做一道小小的题目啦&#xff0c;下面&#xff0c;让我们进入C语言的世界吧 实现一个函数&#xff0c;可以左旋字符串中的k个字符。 例如&#xff1a; A…...

有趣且重要的JS知识合集(18)浏览器实现前端录音功能

1、主题描述 兼容多个浏览器下的前端录音功能&#xff0c;实现六大录音功能&#xff1a; 1、开始录音 2、暂停录音 3、继续录音 4、结束录音 5、播放录音 6、上传录音 2、示例功能 初始状态&#xff1a; 开始录音&#xff1a; 结束录音&#xff1a; 录音流程 &#xf…...

面试官:聊聊你知道的跨域解决方案

跨域是开发中经常会遇到的一个场景&#xff0c;也是面试中经常会讨论的一个问题。掌握常见的跨域解决方案及其背后的原理&#xff0c;不仅可以提高我们的开发效率&#xff0c;还能在面试中表现的更加游刃有余。 因此今天就来和大家从前端的角度来聊聊解决跨域常见的几种方式。…...

SpringCloud五大核心组件

Consul 等&#xff0c;提供了搭建分布式系统及微服务常用的工具&#xff0c;如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性token、全局锁、选主、分布式会话和集群状态等&#xff0c;满足了构建微服务所需的所有解决方案。 服务发现——Netflix Eureka …...

Verilog HDL语言入门(二)

强烈建议用同步设计2.在设计时总是记住时序问题3.在一个设计开始就要考虑到地电平或高电平复位、同步或异步复位、上升沿或下降沿触发等问题&#xff0c;在所有模块中都要遵守它4.在不同的情况下用if和case&#xff0c;最好少用if的多层嵌套&#xff08;1层或2层比较合适&#…...

Simpleperf详细使用

一、Simpleperf介绍 Simpleperf是一个强大的命令行工具&#xff0c;它包含在NDK中&#xff0c;可以帮助我们分析应用的CPU性能。Simpleperf可以帮助我们找到应用的热点&#xff0c;而热点往往与性能问题相关&#xff0c;这样我们就可以分析修复热点源。 如果您更喜欢使用命令…...

【算法基础】二分图(染色法 匈牙利算法)

一、二分图 1. 染色法 一个图是二分图,当且仅当,图中不含奇数环。在判别一个图是否为二分图⑩,其实相当于染色问题,每条边的两个点必须是不同的颜色,一共有两种颜色,如果染色过程中出现矛盾,则说明不是二分图。 for i = 1 to n:if i 未染色DFS(i, 1); //将i号点染色未…...

Caputo 分数阶微分方程-慢扩散方程初边值问题基于L1 逼近的空间二阶方法及其Matlab程序实现

2.3.3 Caputo 分数阶一维问题基于 L1 逼近的空间二阶方法 考虑如下时间分数阶慢扩散方程初边值问题 { 0 C D t α u ( x , t ) = u...

程序员的“黄金5年”:如何快速成为技术骨干

一、认知黄金5年&#xff1a;测试工程师的职业分水岭在软件行业&#xff0c;“黄金5年”是从业者职业发展的关键期&#xff0c;对于软件测试工程师而言更是如此。这5年不仅是技术能力从量变到质变的积累期&#xff0c;更是职业方向从模糊到清晰的定型期。据行业数据显示&#x…...

基于rsync的嵌入式Ubuntu系统镜像定制与批量部署实战

1. 项目概述&#xff1a;为什么我们需要在开发板上“冻结”Ubuntu文件系统&#xff1f;在基于ARM架构的嵌入式开发中&#xff0c;尤其是使用像飞凌OK3399-C这样搭载RK3399处理器的开发板时&#xff0c;我们常常会面临一个看似简单却非常实际的痛点&#xff1a;环境部署的效率问…...

备战蓝桥杯别只刷题了!用2023年JavaB组真题手把手教你锻炼“竞赛思维”

从2023年蓝桥杯JavaB组真题看竞赛思维的三大核心能力 在算法竞赛的征途上&#xff0c;许多选手常常陷入"题海战术"的误区&#xff0c;认为刷题数量直接决定比赛成绩。然而&#xff0c;2023年第十四届蓝桥杯JavaB组的真题却向我们揭示了一个更深刻的真相&#xff1a;竞…...

Cursor AI插件深度解析:从自动化脚本到智能编程工作流

1. 项目概述&#xff1a;一个为 Cursor 编辑器注入灵魂的 AI 增强插件如果你和我一样&#xff0c;日常开发重度依赖 Cursor 这款“AI 原生”编辑器&#xff0c;那你一定体验过它内置的 AI 对话和代码生成带来的效率提升。但用久了&#xff0c;你可能会发现一些痒点&#xff1a;…...

为你的 AI Agent 项目选择并接入性价比更高的多模型服务

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为你的 AI Agent 项目选择并接入性价比更高的多模型服务 在构建 AI Agent 应用时&#xff0c;开发者常常面临一个两难选择&#xf…...

基于ARM9核心板的工业双CAN网关开发实战:从硬件选型到软件架构

1. 项目概述与核心价值最近在做一个工业网关项目&#xff0c;客户要求设备必须支持双路CAN总线&#xff0c;用于同时连接现场的执行器和上位机监控系统。时间紧&#xff0c;任务重&#xff0c;自己从头设计硬件、画板、调试驱动&#xff0c;周期太长&#xff0c;风险也高。这时…...

零基础实战:在AutoDL云端一键部署GPT-SoVITS并实现音色克隆API调用

1. 为什么选择AutoDL部署GPT-SoVITS 第一次接触音色克隆技术时&#xff0c;我和很多人一样被两个问题困扰&#xff1a;本地电脑配置不够怎么办&#xff1f;复杂的Linux环境怎么配置&#xff1f;直到发现AutoDL这个云端算力平台&#xff0c;所有问题迎刃而解。这里实测用RTX3090…...

如何高效管理光盘镜像:WinCDEmu虚拟光驱专业使用指南

如何高效管理光盘镜像&#xff1a;WinCDEmu虚拟光驱专业使用指南 【免费下载链接】WinCDEmu 项目地址: https://gitcode.com/gh_mirrors/wi/WinCDEmu WinCDEmu是一款功能强大的开源虚拟光驱软件&#xff0c;专为Windows系统设计&#xff0c;提供高效的光盘镜像挂载与管…...

Taotoken Token Plan套餐如何为高频用户节省大模型使用成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 Taotoken Token Plan套餐如何为高频用户节省大模型使用成本 对于需要持续、大量调用大模型API的团队或个人开发者而言&#xff0c;…...

ActionView开发者指南:基于Laravel+ReactJS的二次开发完整教程 [特殊字符]

ActionView开发者指南&#xff1a;基于LaravelReactJS的二次开发完整教程 &#x1f680; 【免费下载链接】actionview An issue tracking tool based on laravelreactjs for small and medium-sized enterprises, open-source and free, similar to Jira. 项目地址: https://…...