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

嵌入式培训机构四个月实训课程笔记(完整版)-C++和QT编程第三天-C++类和对象高级应用(物联技术666)

链接:https://pan.baidu.com/s/1YRXI0WiABUlYaQXQDNfbyA?pwd=1688
提取码:1688

上午:类和对象高级应用(续) 

下午:派生和继承

教学内容:

1友元

类的私有成员只能在类定义的范围内使用,也就是说私有成员只能通过它的成员函数来访问但是,有时候需要在类的外部访问类的私有成员。为此,就需要寻找一种途径,在不放弃私有数据安全性的情况下,使得类外部的函数或类能够访问类中的私有成员,此方法就是友元。

友元可分为:友元函数,友元成员,友元类

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

例如:(友元函数)

       友元函数虽然可以访问类对象的私有成员,但它毕竟不是成员函数。因此,在类的外部定义友元函数时,不必像成员函数那样,在函数名前加上“类名::”

       友元函数一般带有一个该类的入口参数。因为友元函数不是类的成员,所以它不能直接引用对象成员的名称,也不能通过this指针引用对象的成员,它必须通过作为入口参数传递进来的对象名或对象指针来引用该对象的成员

//***********************************************

class Girl{

private:

       char *name;

       int age;

public:

       Girl(char *n,int d){    

             name = new char[strlen(n)+1];

             strcpy(name,n);

             age = d;

       }

       friend void disp(Girl &x);    //声明为友元函数,可以内部定义也可以外部定义

//    {    

//           cout<<"girl\'s name is:"<<x.name<<",age:"<<x.age<<endl;

//    }

       ~Girl(){

             delete name;

       }

};

void disp(Girl &x) //定义友元函数,格式不是void Girl:disp(Girl &x),所以是外部函数

{    

       cout<<"girl\'s name is:"<<x.name<<",age:"<<x.age<<endl;//可以访问私有成员

}

int main()

{    

       Girl e("Chen Xingwei",18);

       disp(e);                            //调用友元函数,函数是直接调用,是外部函数标志

       return 0;

}

//********************************************

友元函数可以访问多个类的私有成员

例如:

//********************************************

class Boy;                  //向前引用,必须声明,不声明下面的友元函数出错

class Girl{

private:

       char name[25];

       int age;

public:

       void init(char N[],int A);

       friend void prdata(const Girl plg,const Boy plb);   //声明函数为girl类的友元函数

};                                                       <

相关文章:

嵌入式培训机构四个月实训课程笔记(完整版)-C++和QT编程第三天-C++类和对象高级应用(物联技术666)

链接:https://pan.baidu.com/s/1YRXI0WiABUlYaQXQDNfbyA?pwd=1688 提取码:1688 上午:类和对象高级应用(续) 下午:派生和继承 教学内容: 1、友元 类的私有成员只能在类定义的范围内使用,也就是说私有成员只能通过它的成员函数来访问但是,有时候需要在类的外部访问…...

SAP中采购文档价格条件可以删除吗?

首先要声名&#xff0c;基于采购价格条件的严谨性和历史追朔需求&#xff0c;删除属于危险操作。不建议普通用户去执行操作。如果有兴趣&#xff0c;在测试系统中自行测试一下即可。正式系统中&#xff0c;还请慎重处理。 笔者公司日常不会去删除采购价格&#xff0c;日常处理…...

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置硬件触发模式(C++)

Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置硬件触发模式&#xff08;C&#xff09; Baumer工业相机Baumer工业相机NEOAPI SDK和硬件触发模式的技术背景Baumer工业相机通过BGAPISDK设置硬件触发模式功能1.引用合适的类文件2.通过BGAPISDK在Line0上施加12V/24V电压信号实…...

嵌入式培训机构四个月实训课程笔记(完整版)-Linux网络编程第二天-tcp编程练习(物联技术666)

点赞+关注,功德无量。更多配套资料,欢迎私信。 网盘链接:百度网盘 请输入提取码 WebServer编程: -------------------------------------- #include <stdio.h> #include <stdlib.h> #include <string.h> #i…...

【IC前端虚拟项目】MVU子模块DS文档编写与注意事项

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 DS文档顾名思义就是Design Specification,设计规格文档,对应的就是我们实际一个模块的设计思路和细节: DS - Design Specification(设计规格):"DS" 表示设计规格,它是在架构规格之后,…...

Postgresql 12.2 + PostGIS 3.0.1 安装部署

参考文档&#xff1a; 按照该文档安装即可&#xff0c;如果遇到报错&#xff0c;可以参考下文&#xff1a; https://blog.csdn.net/weixin_41166785/article/details/127674169 所需的安装包 在资源里面&#xff08;我看下怎么可以不用积分下载&#xff09; 1、no acceptable…...

MAC iterm 显示git分支名

要在Mac上的iTerm中显示Git分支名&#xff0c;您需要使用一个名为“Oh My Zsh”的插件。Oh My Zsh是一个流行的Zsh框架&#xff0c;它提供了许多有用的功能和插件&#xff0c;包括在终端中显示Git分支名。 以下是在iTerm中显示Git分支名的步骤&#xff1a; 1、安装Oh My Zsh&…...

智慧公厕:利用物联网、云计算和人工智能实现智能化管理与控制

智慧公厕是指利用传感感知、物联网、互联网、大数据、云计算、自动化控制等先进技术&#xff0c;实现对公厕的智能化管理与控制。通过以上高精尖的信息技术手段&#xff0c;可以实时监测厕所内人体活动状态、人体存在状态、空气质量情况、环境变化情况、设施设备运行状态等信息…...

【漏洞复现】Apache Tomcat AJP文件包含漏洞(CVE-2020-1938)

Nx01 产品简介 Apache Tomcat 是一个免费的开源 Web 应用服务器&#xff0c;在中小型企业和个人开发用户中有着广泛的应用。 Nx02 漏洞描述 默认情况下&#xff0c;Apache Tomcat会开启AJP连接器&#xff0c;由于AJP服务&#xff08;8009端口&#xff09;存在文件包含缺陷&…...

[渗透测试学习] Hospital - HackTheBox

文章目录 信息搜集getshell提权信息搜集 nmap扫描一下端口 发现8080端口和443端口有http服务 然后发现3389端口是启用了ms-wbt-server服务 在对443端口的扫描没有收获,并且只有邮箱登录界面无法注册 接着看向8080端口,我们随便注册用户登录后发现有文件上传功能 getshell …...

C技能树-学习笔记(1-2)C语言概述和数据类型

参考&#xff1a;https://edu.csdn.net/skill/c 1、输出 “Hello, World!” 字符串&#xff0c;请选出错误答案。 2、错误的print函数。 for … in …&#xff1a;是python的语法&#xff0c;C语言的写法是for (;&#x1f609; 3、C标准 没有C19标准。 4、了解C编译管道 …...

设计模式入门

0. 类图 1. 设计原则 1.单一职责原则&#xff1a;每个类只有一个功能 2.开放封闭原则&#xff1a;模块和函数应该对扩展开放(对提供方)&#xff0c;对修改关闭(对使用方) 3.里氏代换原则&#xff1a;子类拥有父类的所有方法和属性&#xff0c;从而可以减少创建类的工作量 4.依…...

EasyExcel下载EXCEL文件,后台通过流形式输出到前端浏览器下载方式输出

前端代码&#xff08;参考&#xff09;&#xff1a;$("#import").on(click, function(){var createDate$("#createdDate").val();var key1$("#key1").val();if(createDatenull||createDate""){layer.msg("请选择创建时间段&#…...

Pandas实战100例 | 案例 56: 创建多重索引

案例 56: 创建多重索引 知识点讲解 在 Pandas 中&#xff0c;多重索引&#xff08;或层次化索引&#xff09;提供了在 DataFrame 中表示多维数据的方式。这使得数据分析在多个级别上更加灵活和强大。 创建多重索引: 通过使用 set_index 方法并传入多个列名&#xff0c;可以在…...

解决“nacos默认secret.key配置不当权限绕过漏洞“

一、前言 nacos 2.2.0.1以下版本会有一个nacos默认secret.key配置不当权限绕过漏洞&#xff0c;等级为高危。形成原因是nacos的配置文件中存在这么一个secret.key默认配置&#xff1a; nacos.core.auth.plugin.nacos.token.secret.keySecretKey01234567890123456789012345678…...

一款好用的开源思维导图软件 docker部署教程

目录 Simple mind map简介 Simple mind map特点 1.拉取镜像 2.创建并启动容器 方式1&#xff1a;docker启动 方式2&#xff1a;docker compose启动 3.使用 4.源码地址 Simple mind map简介 .一个 Web 思维导图&#xff0c;基于思维导图库、Vue2.x、ElementUI 开发&#…...

Jenkins之pipeline

安装插件 Pipeline Pipeline: Stage View Plugin 创建任务 配置 demo 开始实践 拉取git仓库代码 checkout scmGit(branches: [[name: */main]], extensions: [], userRemoteConfigs: [[url: http://178.119.30.133:8929/root/mytest.git]])通过SonarQube做质量检测 sh …...

创意交融:集成自定义报表和仪表盘设计器,实现图标替换

前言 在现代数据分析领域&#xff0c;随着对报表和数据分析的需求不断增长&#xff0c;市场上涌现了许多嵌入式报表工具。这些工具能够与企业现有的OA、ERP、MES、CRM等应用系统深度集成&#xff0c;实现对业务数据的自助式分析。然而&#xff0c;在实际应用中&#xff0c;不同…...

Mybatis 40_resultMap基础和@Results注解

40_resultMap基础和Results注解 resultType和resultMap<resultMap.../>元素项目0501resultMap Results注解项目0502resultMap注解&#xff08;Results) 【总结】 resultType和resultMap resultType指定结果集每条记录要映射的对象类型。resultMap表明使用自定义的映射规…...

【蓝桥杯选拔赛真题31】C++数位求和 第十三届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

目录 C/C++数位求和 一、题目要求 1、编程实现 2、输入输出...

[开源] 病历自举报系统:面向临床质控的电子病历智能预审工具,用大模型扮演质疑者角色发现逻辑矛盾与缺项问题

本项目是一个专为中文电子病历&#xff08;EMR&#xff09;设计的轻量级质控辅助工具&#xff0c;核心目标是让医生在提交病历前&#xff0c;就能快速识别出文本中潜藏的逻辑矛盾、信息缺项、时间线错乱、数值异常和主观夸大等典型质量问题。我们不替代人工质控&#xff0c;也不…...

揭秘DeepSeek千万级语料构建全流程:从原始网页采集到高质量token化,97.3%过滤率背后的硬核实践

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek训练数据准备 DeepSeek系列大模型的训练质量高度依赖于数据的规模、多样性与清洗精度。训练数据并非简单堆叠原始网页或文本&#xff0c;而是经过多阶段筛选、去重、毒性过滤与格式标准化的结构…...

如何免费解锁Wand专业版功能:Wand-Enhancer完整使用指南

如何免费解锁Wand专业版功能&#xff1a;Wand-Enhancer完整使用指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 还在为Wand&#xff08;原WeMod&…...

CPT 强化学习完整实现(PyTorch 版 - Actor-Critic + CPT)

✅ CPT 强化学习完整实现&#xff08;PyTorch 版 - Actor-Critic CPT&#xff09; 以下是生产级友好的实现&#xff0c;适合连续/离散控制任务&#xff0c;结合 Cumulative Prospect Theory 修改优势函数&#xff08;Advantage&#xff09;。 推荐配置&#xff08;默认使用&am…...

用 AutoGen 编排多智能体协作,让 AI 团队帮你干活

&#x1f9d1;‍&#x1f4bb; 博主介绍 & 诚邀关注 作者&#xff1a;专注于 Java、Python、前端开发的技术博主 | 全网粉丝 30 万 在校期间协助导师完成毕业设计课题分类、论文格式初审及代码整理工作&#xff1b;工作后持续分享毕设思路&#xff0c;助力毕业生顺利完成…...

3分钟掌握novel-downloader:打造你的永久小说图书馆终极指南

3分钟掌握novel-downloader&#xff1a;打造你的永久小说图书馆终极指南 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 你是否曾经因为小说网站突然关闭、章节被删除或VIP内容无法离…...

为什么92.7%的企业漏检DeepSeek生成的隐性偏见内容?3类高危prompt绕过案例首次公开

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek输出内容审核的行业现状与挑战 当前&#xff0c;以DeepSeek-R1为代表的开源大语言模型在代码生成、数学推理和多轮对话等任务中展现出卓越性能&#xff0c;但其开放权重与高自由度输出特性&…...

ChatGPT新闻稿写作终极模板包(含敏感词实时拦截表+信源可信度打分卡+记者视角反问清单):仅开放前500份

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;ChatGPT新闻稿写作终极模板包概览 本模板包专为公关、市场与内容团队设计&#xff0c;整合了新闻稿结构化框架、语义优化提示词库、合规性检查清单及多平台适配输出模块&#xff0c;支持从初稿生成到终稿发布…...

基于 Taotoken 构建支持多模型路由的智能写作助手 Agent

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 基于 Taotoken 构建支持多模型路由的智能写作助手 Agent 在开发智能写作工具时&#xff0c;一个常见的需求是让工具能够处理不同类…...

使用TaotokenCLI工具一键配置开发环境与密钥

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用Taotoken CLI工具一键配置开发环境与密钥 在接入多个大模型服务时&#xff0c;开发者通常需要为不同的工具和项目手动配置API密…...