第八周一(2)友元

C++系列学习05 本文介绍了C++面向对象编程中的继承特性和运算符重载。主要内容包括:1. this指针的概念和使用场景;2. 运算符重载规则及实际应用(输出/输入/赋值运算符);3. 继承的三种方式及继承中的构造/析构函数调用顺序;4. 多继承中的同名成员处理及菱形继承问题;5. 虚拟继承的实现原理(虚基类指针和虚基类表)。通过代码示例详细演示了这些特性的具体应用,帮助理解C++面向对象编程的核心概念。 阅读详情
#include <iostream>

using namespace std;

class Complex
{public:
	Complex(){real=0;imag=0;}
	Complex(double r,double i){real=r;imag=i;}
	friend Complex operator+(Complex &c1,Complex &c2);
	friend Complex operator-(Complex &c1,Complex &c2);
	friend Complex operator*(Complex &c1,Complex &c2);
	friend Complex operator/(Complex &c1,Complex &c2);
	void display();
 private:
	double real;
	double imag;
};
//下面定义友元函数
 Complex operator+(Complex &c1,Complex &c2)
 {
 return Complex(c1.real+c2.real,c1.imag+c2.imag);
 }
 Complex operator-(Complex &c1,Complex &c2)
 {
 return Complex(c1.real-c2.real,c1.imag-c2.imag);
 }
 Complex operator*(Complex &c1,Complex &c2)
 {
 return Complex(c1.real*c2.real,c1.imag*c2.imag);
 }
 Complex operator/(Complex &c1,Complex &c2)
 {
 return Complex(c1.real/c2.real,c1.imag/c2.imag);
 }
void Complex::  display()
{
cout<<"("<<real<<","<<imag<<"i)"<<endl;
}
//下面是测试函数
int main()
{
	Complex c1(3,4),c2(5,-10),c3;
	cout<<"c1=";
	c1.display();
	cout<<"c2=";
	c2.display();
	c3=c1+c2;
	cout<<"c1+c2=";
	c3.display();
	c3=c1-c2;
	cout<<"c1-c2=";
	c3.display();
	c3=c1*c2;
	cout<<"c1*c2=";
	c3.display();
	c3=c1/c2;
	cout<<"c1/c2=";
	c3.display();
	return 0;
}

运行结果:
C++日期计算器实现:面向对象设计、运算符重载与边界处理详解 日期时间处理是编程中的基础且关键的技术领域,涉及历法规则、时间计算等核心概念。其原理基于公历系统,需准确处理闰年判断、月份天数差异等复杂逻辑。在工程实践中,一个健壮的日期类能极大提升应用系统的可靠性,常用于财务结算、项目管理和日程安排等场景。通过面向对象思想封装日期数据与操作,并运用运算符重载技术,可以使日期对象像内置类型一样直观易用。本文以C++日期计算器项目为例,深入探讨了`Date`类的设计与实现,重点解析了日期加减运算中的边界条件处理和高效的“基准日法”差值计算,帮助开发者掌握构建鲁棒性强的日期处理 阅读详情

相关推荐

基于MATLAB的太阳能光伏电力仿真,模拟每日太阳能发电,可视化功率曲线,并通过数值积分计算总能量输出。.zip

1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。

C++程序设计基础一周目第七天

昨天看了类,没总结,今天补一下。 1.类也是一种数据类型,我理解为多了成员函数的结构,是封装的基础,其内存大小同没有函数的结构,函数不占内存空间(应该是另外一片空间)。 2.不声明是公有保护还是私有成员的默认为私有。 3.成员函数一般分为两类,一类负责消息传递,一般暴露在公有成员中,另外一类操作数据成员,一般为私有或保护。 4.this指针不能显示说明,只能在非静态的成员函数中使用,在开始

solomomlongquan的博客 380

人脸识别签到考勤系统实战源码

这是一套可直接运行的人脸识别智能签到考勤系统,基于OpenCV YuNet人脸检测与SFace特征识别实现,全程本机运行,数据保存在本地SQLite,不上传任何服务器。配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、逐步骤操作截图和答辩PPT讲解。 系统围绕五个功能模块展开:人脸注册支持照片批量导入并提取特征入库;识别签到支持照片或摄像头两种方式,实时框出人脸并标注姓名、相似度与考勤状态;考勤规则引擎按config.py里配置的上下班时间与宽限分钟,自动判定迟到、早退、缺勤;Tkinter管理面板完成人员管理、流水查询与月度汇总;最后通过openpyxl一键导出整月考勤矩阵,正常绿、迟到黄、缺勤红,Excel打开即用。 选型上特意选了YuNet+SFace路线:纯pip安装免编译,CPU单帧识别不到100ms,两个ONNX模型共约37MB,出自OpenCV官方模型仓库,毕设报告引用有据可查。教程第7章整理了16条Windows下真实踩过的报错及排查方法,第8章给出换模型、换人脸、加功能的二次开发路径。 适合做计算机视觉方向毕设或课程设计的学生,也适合想给班级、实验室、小团队搭一套本地签到工具的Python学习者。运行环境为Python 3.9以上、Windows 10/11,不需要GPU。 使用时先pip install -r requirements.txt装齐依赖,再运行download_data.py下载模型,最后启动main.py即可进入图形界面;命令行register、recognize、report子命令也可脱离界面单独调用。

2021-03-28

学习目标: 一周掌握侯捷 C++面向对象高级开发 学习内容: 1、C++书籍 语法书籍: 《C++Primer》 《learning Program》 提升书籍 《effective C++》 标准库 《The C++ standard Libaray》 2、头文件的规范 #ifndef CLASS//防御式申明 #define CLASS class(){} #endif 3.inline函数 类里面定义的函数就是inline函数 不在本体中定义的可以加一个inline 4.访问级别 所有的数据

HEU_LUOXIAOKUN的博客 75

【无人机航测】MATLAB重叠率与地面分辨率协同设计:航线间距及飞行方向优化系统 MATLAB 无人机航测重叠率设计|地面分辨率与航线间距计算

内容概要:本文档介绍了基于MATLAB R2025b开发的无人机航测重叠率与航线间距计算系统,旨在通过建立统一的航测几何计算体系,实现重叠率、地面分辨率与航线间距的动态协同设计。系统结合相机参数、飞行参数、地形数据与风场信息,通过自动化候选航向搜索与多目标优化,选择兼顾覆盖质量、飞行效率与安全性的最优航线方向。项目涵盖从参数输入、摄影测量计算、地形与安全修正,到候选路线生成、综合评价与结果可视化的全流程,并构建了五万组模拟数据用于算法验证与模型训练,支持桌面交互、批量处理与服务化部署,适用于多种复杂场景下的无人机航测任务规划。 适合人群:具备一定MATLAB编程基础和摄影测量知识的科研人员、工程技术人员及高校师生,尤其适合从事无人机航测、地理信息系统(GIS)、遥感与测绘等相关领域的从业者。 使用场景及目标:① 实现无人机航测任务中地面分辨率与航线间距的精确计算与动态优化;② 解决复杂地形与风场环境下航线方向选择困难、覆盖质量难以保障的问题;③ 通过自动化设计减少人为经验依赖,提升航测任务的可靠性与效率;④ 为后续的三维建模、正射影像生成与灾害应急评估等应用提供高质量的数据基础。 阅读建议:建议读者结合文中提供的完整代码示例与GUI界面设计,逐步实践参数配置、模型计算与结果分析流程。重点关注摄影测量公式推导、地形修正策略与多目标优化算法的实现细节,并利用模拟数据进行敏感性分析与模型验证,以深入理解系统的设计理念与工程应用价值。

【电力负荷预测】项目介绍 MATLAB实现基于BO-Transformer-LSTM贝叶斯优化算法(BO)优化Transformer-LSTM组合模型进行居民用户多步电力负荷预测(含模型描述及部分示例

内容概要:本文介绍了一个基于BO-Transformer-LSTM的组合模型,用于实现居民用户多步电力负荷预测的完整项目实例。该模型融合Transformer的全局注意力机制与LSTM的局部时序记忆能力,构建能够捕捉长时依赖与周期性特征的深度学习架构,并引入贝叶斯优化(BO)自动搜索最优超参数组合,提升预测精度与训练效率。项目涵盖从原始数据清洗、特征工程、滑动窗口样本构建、模型设计到超参数优化、反归一化及多步误差评估的全流程,强调时间顺序划分以防止信息泄露,并通过周期编码、外生变量融合等方式增强数据表达能力。文中提供了详细的MATLAB代码示例,包括数据预处理、网络搭建、贝叶斯优化配置和预测结果评估等关键步骤。 适合人群:具备一定机器学习和时间序列分析基础,熟悉MATLAB编程环境,从事电力系统预测、智能电网、负荷管理等相关领域的研究人员、工程师及研究生。 使用场景及目标:①应用于居民级或多用户聚合负荷的短期至中期多步预测(如未来24小时);②服务于配电系统运行调度、需求响应基线设定、家庭能源管理系统优化、分布式能源协调控制等实际工程场景;③为科研提供可复现的深度学习+贝叶斯优化的技术路线参考。 阅读建议:此资源以实际项目为导向,建议读者结合提供的代码逐步实现并调试模型,重点关注数据质量控制、时间特征编码、组合网络结构设计与贝叶斯优化稳定性之间的协同关系,在实践中深入理解多步预测中的误差累积机制与超参数敏感性问题。

C++面向对象编程:从类与对象基础到封装、构造与拷贝控制

面向对象编程是一种将数据和操作数据的方法封装在一起的编程范式,其核心思想是通过类和对象来模拟现实世界中的实体与行为。在C++中,类作为对象的蓝图,定义了数据成员和成员函数,而对象则是类的具体实例。这种机制通过封装实现了数据隐藏和保护,提升了代码的安全性和可维护性。理解构造函数与析构函数是掌握对象生命周期管理的关键,它们分别负责对象的初始化和资源清理。此外,拷贝控制(包括拷贝构造函数和拷贝赋值运算符)对于管理包含动态资源的对象至关重要,能有效防止浅拷贝导致的问题。这些概念共同构成了C++面向对象编程的基础,广

diandingyin9417的博客 408

国央企创新负责人如何通过平台实现科研成果的快速识别与转化?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

达内C++21天培训课程看完了!总结!明天开始打JAVA基础。

原来我只有C语言基础,经过2013-2-20日到2013-4-12日将近2个月的时间,终于把达内C++视频资料看完了。学到了很多东西。 运算符重载,异常,容器,模板,STL,友元,精灵进程。。等等 同时也让我也对指针有了深刻的印象,有了更多的编程基础 简单描述一下进程间通信: 1、消息队列,linux消息队列,通过调用函数发送消息到系统,然后客户端通过连接系统消息队列来获取消息。

tianqiruanjian的专栏 1397

PotPlayer自用皮肤

自用 PotPlayer 皮肤,仅微调了字体大小与颜色,是按个人习惯调整,未做适配性调整。

2-shell及常用命令-续.pdf

2-shell及常用命令-续.pdf

[C++] 语言入门

C语言是结构化和模块化的语言,适合处理较小规模的程序。对于复杂的问题,规模较大的程序,需要高度的抽象和建模时,C语言则不合适。为了解决软件危机, 20世纪80年代, 计算机界提出了OOP(object oriented programming:面向对象)思想,支持面向对象的程序设计语言应运而生。1982年,Bjarne Stroustrup博士在C语言的基础上引入并扩充了面向对象的概念,发明了一种新的程序语言。为了表达该语言与C语言的渊源关系,命名为C++。

zty20120913的博客 2059

【顶级EI复现】基于KKT条件与分段解析优化的双有源桥DC-DC变换器软开关协同最小应力闭环控制方法(Simulink仿真实现)

内容概要:本文详细介绍了一种基于KKT(Karush-Kuhn-Tucker)最优性条件与分段解析优化技术的双有源桥(DAB)DC-DC变换器闭环控制方法,旨在实现软开关条件下器件电压和电流应力的协同最小化,从而提升变换器的转换效率与系统可靠性。该方法通过建立精确的数学模型,结合KKT条件进行优化求解,并采用分段解析策略提高实时控制性能,在Simulink环境中完成了完整的闭环控制系统建模与仿真验证。作为“顶级EI复现”级别的研究成果,内容涵盖控制算法设计、优化机制分析、仿真架构搭建及结果对比,具有较强的理论深度与工程应用价值,适用于电力电子高频化、高效化发展的前沿研究方向。; 适合人群:面向具备电力电子、自动控制或电气工程等相关专业背景,熟悉Simulink仿真平台,且从事科研工作1年以上的研究生、博士生及科研人员;特别适合致力于DC-DC变换器拓扑优化、软开关技术、最小化开关应力控制、能量高效传输等领域研究的专业人士。; 使用场景及目标:① 复现高水平EI期刊论文中的先进优化控制算法;② 掌握KKT条件在非线性约束优化问题中的具体应用;③ 深入理解DAB变换器在不同工况下的软开关实现机制与应力抑制策略;④ 构建高精度仿真模型以支撑学术论文撰写、科研项目申报或实际工程系统的控制方案设计。; 阅读建议:建议结合提供的Simulink仿真模型同步学习,重点关注KKT条件推导过程与分段解析优化模块的实现逻辑。由于内容涉及较强的数学建模与优化理论,推荐具备扎实的电路理论、现代控制理论及数值优化基础后再行研读,并可参考同系列“顶级EI复现”资源以构建系统性知识体系。

杂谈 跟编程无关的事情22

暂时写这么多吧,估计中间会穿插的投简历找工作,到时候看情况再说。马上要9月一号开学了,我到时候找找现在好大学CS科班的课表,结合我的实际情况再修改下。我不是个很喜欢设立计划表的人,现在先尝试试试吧。大家有好的计划或者想法,观点欢迎留言。...

chen20100531的博客 489

交错并联图腾柱PFC变换器仿真设计(Simulink仿真实现)

内容概要:本文档系统性地介绍了基于Simulink平台的“交错并联图腾柱PFC变换器”仿真设计,聚焦于高效率功率因数校正技术的建模与实现。内容涵盖双闭环控制策略(电压外环与电流内环)、PI控制器设计、交错并联结构优化以及图腾柱拓扑的工作原理,旨在提升系统动态响应性能、降低输入电流谐波含量并改善功率因数。文档不仅提供详细的仿真模型构建流程,还配套Mathcad计算书用于参数设计与功率等级扩展,并列举了多种相关电力电子变换器的仿真案例,如三相维也纳整流器、LLC谐振变换器、双向Buck-Boost电路等,形成了一套完整的电力电子系统仿真资源体系,适用于从理论分析到工程实践的全流程学习与研究。; 适合人群:电气工程、自动化、电力电子及相关专业的高校本科生、研究生,以及从事新能源发电、电源设计、电能质量治理、工业自动化等领域的研发工程师;具备基本电路理论知识和Simulink/Matlab使用经验者更佳。; 使用场景及目标:①支持高校课程设计、毕业设计或科研项目中对先进PFC拓扑的仿真验证与性能优化;②帮助工程技术人员快速掌握图腾柱PFC的核心控制逻辑与建模方法,缩短产品开发周期;③作为电力电子系统教学与技术培训的标准化参考案例,强化理论与实践结合能力。; 其他说明:文档由“荔枝科研社”整理发布,所有资源可通过指定公众号或百度网盘链接获取,建议按照目录顺序系统学习,并结合提供的Mathcad计算书、参考文献及仿真文件进行参数验证与二次开发,以深化理解与应用能力。

学习记录——SIMPACK生成轨道谱文件的方法

生成轨道谱文件的方法,可以用于实测轨道谱导入和自制轨道谱导入仿真

weixin_51965897的博客 7801

C++日期类设计与实现:从基础工具函数到完整运算符重载

在C++编程中,日期与时间处理是常见且基础的需求,涉及数据封装、算法设计与接口规范等核心编程概念。其原理在于通过合理的内部数据表示(如年-月-日三元组)和严谨的边界校验(如闰年与月份天数),构建出类型安全、易于使用的抽象数据类型。这类自定义数据类型的价值在于,它能将复杂的底层逻辑(如日期加减的跨月跨年处理)封装起来,提供直观、高效的运算符接口(如 +, -, ++, <<),从而提升代码的可读性、可维护性与复用性。其应用场景广泛,从简单的日程管理到复杂的金融系统计算无处不在。本文以【运算符重载】和【构造函数

weixin_33901926的博客 293

基于Transformer的CFD代理模型:AeroTransformer原理、实现与优化

计算流体动力学(CFD)仿真是航空航天、汽车工程等领域的关键技术,但其高计算成本限制了设计优化效率。代理模型通过机器学习方法学习输入参数与流场输出间的映射关系,能实现秒级预测,大幅加速仿真流程。Transformer架构凭借其全局注意力机制,能有效建模流场中的长程物理关联,克服了传统卷积神经网络在捕捉全局依赖上的局限。通过预训练与微调策略,模型能先在大规模多样化数据集上学习通用流体规律,再针对特定任务快速适配,显著提升了小样本下的泛化能力与工程实用价值。AeroTransformer项目正是这一技术路线的典

weixin_33509203的博客 358

C++日期类封装:从设计到实现,掌握面向对象与运算符重载

在C++开发中,日期与时间处理是基础且高频的需求,涉及从简单的日期计算到复杂的业务逻辑。理解其核心在于掌握面向对象编程的封装思想,将数据与操作内聚于类中,并通过运算符重载提供直观的接口。这不仅能提升代码的类型安全性和可维护性,更是深入理解构造函数、const成员函数、友元等C++核心特性的绝佳实践。通过实现日期有效性校验、日期加减运算(如处理跨月跨年的进位借位)以及高效计算日期差等关键算法,开发者可以构建健壮的工具类。此类技术广泛应用于日程管理、财务周期、会员系统等场景,是C++面试与工程中的经典课题。本文

weixin_30376083的博客 480

openwrt编译及第一个安装包教程

Date: 2017.03.14 Made:SuperDeverloper Email: na1206@live.com Target: For mt7688 based board说明:本人在学习过程中走了不少弯路,希望本文档能为后来者提供便利。欢迎复制和使用本文档。本文档记录了搭建openwrt编译环境以及快速创建ipk包(openwrt上的安装程序)。本文档在实际应用中做过几次修改,以帮

SuperDevloper的博客 1万+

Unity URP项目里Post Processing死活没效果?别急,这5个坑我帮你踩过了

本文详细解析了Unity URP项目中Post Processing效果不显示的5个常见问题及解决方案,包括管线配置、Volume设置、摄像机选项、Layer冲突和Shader兼容性。通过专业排查步骤和实用代码片段,帮助开发者快速定位并修复后处理效果失效问题,提升项目开发效率。

weixin_28693309的博客 233

C++日期类实现:从运算符重载到工程实践

在C++面向对象编程中,运算符重载是一项核心特性,它允许开发者自定义类型支持类似内置类型的操作,从而提升代码的表达力和可读性。其原理是通过定义特定的成员函数或全局函数,为自定义类重载如+、-、==、<<等运算符。这项技术的核心价值在于实现更直观、更符合直觉的API设计,是构建高质量、易用类库的基础。在工程实践中,运算符重载广泛应用于数学库(如复数、矩阵)、容器类(如字符串拼接、比较)以及需要丰富语义的自定义数据类型中。本文以构建一个功能完备的C++日期类为例,深入探讨如何通过运算符重载实现日期的加减、比较、

weixin_30911451的博客 475

CS之攻击菜单详解-后门生成与上线

能够生成如HTA文档、office宏、payload生成器、exe程序。 windows可执行程序exe 可以看到能生成两种windows可执行程序,其分别代表stage分阶段和unstage(stageless)不分阶段。传送门 ——>Cobalt Strike中payload的stage与unstage区别 选择监听器后,按需生成不同类型的exe 然后在目标机器运行即可上线 payload生成器 选择生成如下类型的后门 ——>https://che...

渗透之路,攻防之间皆学问 6806
上一篇: 第八周项目一任务*1*成员函数
下一篇: 第八周项目二
sdwangjun
博客等级 码龄14年 35粉丝 116原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值