刷野打怪上王者·C++篇·第14期·继承操作

基于 Qt 6 / C++17 的多算法加解密工具(学习研究用途) 涵盖编码、古典密码、对称/非对称加密、哈希摘要共 24 种算法,全部纯 C++ 自实现,不依赖 OpenSSL/GmSSL 基于 Qt 6 / C++17 的多算法加解密工具(学习研究用途)。涵盖编码、古典密码、对称/非对称加密、哈希摘要共 24 种算法,全部纯 C++ 自实现,不依赖 OpenSSL/GmSSL。含图形界面、批量文件加解密、密钥管理、性能测试与操作日志。提供标准测试向量自测。 立即下载

参考链接

RUNOOB.COM

继承操作

    继承操作可以通过一个已有类来定义新的类。说白了就是当我们在定义一个新类的时候,不需要重新编写新的类成员和方法,可以继承已有的类成员即可。其中,已有的类为基类,新创建的类成为派生类。

派生类可以从多个基类进行继承,下面看一下派生类的定义方法:

class 派生类名: 访问权限(public/private/protect) 基类;

下面通过实例来说明一下:

#include <iostream>

using namespace std;

//基类
class AnimalClass 
{
	public:
		AnimalClass();
		int setAnimalFeature(int iTmpVar1, float iTmpVar2);
		~AnimalClass ();
	protected:
		int iAge;
		float iHigh;
};

AnimalClass::AnimalClass (){}

int AnimalClass::setAnimalFeature(int iTmpVar1, float iTmpVar2)
{
	iAge = iTmpVar1;
	iHigh = iTmpVar2;
	return 1;
}
AnimalClass ::~AnimalClass (){}

//派生类
class DogClass : public AnimalClass   //声明派生类
{
public:
	DogClass();
	~DogClass();
	int getDogInfo();
private:

};

DogClass::DogClass(){}

int DogClass::getDogInfo()
{
	cout << "狗的年龄:" << iAge << "高度:" << iHigh << endl;
	return 1;
}
DogClass::~DogClass(){}

int main()
{
	DogClass dog1;
	dog1.setAnimalFeature(2, 0.5);  //这里调用基类里面的方法和类成员变量
	dog1.getDogInfo();
	getchar();

}

运行结果

狗的年龄:2高度:0.5

注:上面讲解了派生类继承了一个基类里面的方法和类成员变量,下面我们来说一个继承多个基类的使用方法:

class 派生类名:<访问权限1> 基类1, <访问权限2> 基类2,...
{
    /*核心语句*/
} 

举例说明

#include <iostream>

using namespace std;

//基类1
class AnimalClass 
{
	public:
		AnimalClass();
		int setAnimalFeature(int iTmpVar1, float iTmpVar2);
		~AnimalClass ();
	protected:
		int iAge;
		float iHigh;
};

AnimalClass::AnimalClass (){}

int AnimalClass::setAnimalFeature(int iTmpVar1, float iTmpVar2)
{
	iAge = iTmpVar1;
	iHigh = iTmpVar2;
	return 1;
}
AnimalClass ::~AnimalClass (){}

//基类2
class FoodClass 
	{
	public:
		FoodClass();
		~FoodClass();
		int setEatFood(char * cTmpName);

	protected:
		char * cFoodName;

};

FoodClass ::FoodClass(){}

int FoodClass::setEatFood(char * cTmpName)
{
	cFoodName = cTmpName;
	return 1;
}

FoodClass ::~FoodClass(){}

//派生类
class DogClass : public AnimalClass, public FoodClass   //声明派生类
{
public:
	DogClass();
	~DogClass();
	int getDogInfo();
	int getDogEatFood();
private:

};

DogClass::DogClass(){}

int DogClass::getDogInfo()
{
	cout << "狗的年龄:" << iAge << "高度:" << iHigh << endl;
	return 1;
}
int DogClass::getDogEatFood()
{
	cout << "狗的喜欢吃:" << cFoodName << endl;
	return 1;
}
DogClass::~DogClass(){}

int main()
{
	DogClass dog1;
	dog1.setAnimalFeature(2, 0.5);  //这里调用Animal基类里面的方法和类成员变量
	dog1.setEatFood("Meat");
	dog1.getDogInfo();              //这里调用Food基类里面的方法和类成员变量
	dog1.getDogEatFood();
	getchar();
}

运行结果

狗的年龄:2高度:0.5
狗的喜欢吃:Meat

聊完了派生类中继承单个基类和多个基类,下面我们来说一下访问权限的作用,访问权限主要有public、private、protected三种:

public(公有继承):保持基类里面方法和类变量的访问控制,即原先为public权限,继承下来同样为public权限;即原先为protected权限,继承下来同样为protected权限;privated不能派生访问,但是可以调用public和protected成员来进行访问。

protected(保护继承): 当一个类派生自保护基类时,基类的公有和保护成员将成为派生类的保护成员。

private(私有继承):当一个类派生自私有基类时,基类的公有和保护成员将成为派生类的私有成员

其实,就是取派生类访问权限和基类权限的交集。

    说明:派生也不是类中所有成员和变量都可以进行派生的,例如:基类的构造函数、析构函数和拷贝构造函数、基类的重载运算符、基类的友元函数,就不能进行派生访问。

下面通过表来看一下,类中访问权限的作用范围:

更多《计算机视觉与图形学》知识,可关注下方公众号:

 

考虑一次调频以及二次调频和各机组调频特性的双目标风光水火储动态调度研究(Matlab代码实现) 考虑一次调频以及二次调频和各机组调频特性的双目标风光水火储动态调度研究(Matlab代码实现)内容概要:本文研究了一种考虑一次调频、二次调频以及各机组调频特性的双目标优化模型,用于风光水火储多能互补系统的动态调度问题。该模型以系统运行成本最小化和新能源消纳最大化为双重优化目标,综合考虑了各类电源的出力特性、储能系统的充放电行为及电网频率响应要求。通过Matlab编程实现了完整的求解流程,采用多目标优化算法对复杂约束条件下的调度方案进行求解,并对不同场景下的调度结果进行仿真分析,验证了所提模型在提升系统经济性与稳定性方面的有效性。研究还探讨了储能系统在平抑新能源波动、参与频率调节中的关键作用,为高比例可再生能源接入下的电力系统调度提供了理论支持和技术路径。; 适合人群:具备一定电力系统基础知识和Matlab编程能力,从事新能源调度、电力系统优化等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①解决含多种能源形式的复杂电力系统在实际运行中的动态调度问题;②研究储能系统在调频和促进新能源消纳中的协同机制;③掌握多目标优化在电力系统调度中的建模与实现方法; 阅读建议:建议读者结合Matlab代码深入理解模型构建与求解过程,重点关注目标函数设计、约束条件处理及多目标折衷分析方法,同时可通过修改参数进行不同场景的仿真实验,以加深对系统动态行为的理解。 立即下载

相关推荐

图腾柱无桥PFC变换器+平均电流控制+PI电压双闭环前馈控制设计(Simulink仿真实现)

内容概要:本文系统研究了图腾柱无桥PFC变换器的高性能控制策略,采用平均电流控制与PI电压双闭环前馈控制相结合的方法,并基于Simulink平台构建了完整的仿真模型进行验证。文章深入剖析了控制系统的结构设计,重点阐述了电压外环与电流内环的协同工作机理,其中前馈控制的引入显著增强了系统对输入扰动的抑制能力和动态响应速度。通过仿真结果表明,该复合控制策略能够有效实现单位功率因数运行,大幅降低输入电流的总谐波畸变率(THD),同时确保直流母线电压具有优异的稳态精度和快速跟踪能力。本研究为高效率、高功率密度的PFC变换器设计提供了坚实的理论支撑和可靠的实践范例。; 适合人群:从事电力电子、电气自动化、新能源变换器研发的高校研究生、科研人员及企业工程师。; 使用场景及目标:①掌握图腾柱无桥PFC变换器的工作原理与建模方法;②深入理解平均电流控制、PI双闭环及前馈控制在电力电子系统中的综合应用;③学习使用Simulink进行电力电子变换器的系统级仿真与性能分析。; 阅读建议:建议读者结合文中提供的仿真模型,分模块(主电路、控制逻辑、调制环节)进行参数设置与仿真调试,重点关注电压环与电流环的动态响应、稳态精度以及THD指标的变化,以深化对控制策略的理解。

刷野打怪上王者·C++篇·第27期·总结

刷野打怪上王者·C++篇·第26期·时间函数&预处理 刷野打怪上王者·C++篇·第25期·动态内存处理 刷野打怪上王者·C++篇·第24期·信号处理 刷野打怪上王者·C++篇·第23期·标准流输入输出 刷野打怪上王者·C++篇·第22期·多线程处理 刷野打怪上王者·C++篇·第21期·模板处理 刷野打怪上王者·C++篇·第20期·命名空间 刷野打怪上王者·C++篇·第19期·...

CSS360的博客 1617

基于可靠性评估序贯蒙特卡洛模拟法的配电网可靠性评估研究(Matlab代码实现)

内容概要:本文系统研究了基于序贯蒙特卡洛模拟法的配电网可靠性评估方法,重点聚焦于其在含分布式电源的复杂配电网中的应用。文章深入阐述了该方法的理论基础与实现流程,通过建立配电网元件的故障与修复过程的时间序列模型,模拟系统在长期运行中的状态演变,进而精确统计系统及负荷点的关键可靠性指标,如系统平均停电频率(SAIFI)、系统平均停电持续时间(SAIDI)、用户平均停电时间(CAIDI)等。研究依托Matlab平台完成了完整的仿真程序开发,并通过典型算例验证了所提方法的有效性与工程实用性。该方法能够充分考虑系统的时序特性与元件间的相关性,尤其适用于高比例分布式电源接入后带来的随机性与波动性较强的新型配电网可靠性分析。; 适合人群:具备电力系统分析基础知识和一定Matlab编程能力的高校研究生、科研机构研究人员,以及从事配电网规划、运行维护与风险管理的工程技术人员。; 使用场景及目标:①掌握序贯蒙特卡洛模拟法在电力系统可靠性评估中的核心原理与具体实施步骤;②学习如何利用Matlab进行配电网时序仿真建模与可靠性指标的自动化计算;③为含分布式电源的现代配电网的规划设计、运行风险评估及韧性提升提供科学的量化分析工具与技术支撑。; 阅读建议:建议读者结合文中提供的Matlab代码实现,逐行调试并运行仿真程序,深入理解状态抽样、时间推进、故障遍历、指标累加等关键算法环节,并鼓励尝试将其应用于不同的网络拓扑结构或引入更多类型的分布式电源模型,以深化对方法适应性与扩展性的理解。

刷野打怪上王者·C++篇·第7期·数据存储

参考链接 RUNOOB.COM 数据存储类说明 在编程过程需要限制和扩大函数以及变量的作用域(关于作用域上一篇已经提到点),需要一些特定的类来进行修饰。为实现上面的功能,C++定义了存储类。C++程序中使用的存储类:auto,register,static,extern,mutable,thread_local。 但是随着C++版本的更新,从C++17开始,aut...

CSS360的博客 842

基于多策略改进蜣螂算法(MSDBO)的多无人机协同三维避障路径规划研究(Matlab代码实现)

内容概要:本文研究基于多策略改进的蜣螂优化算法(MSDBO)在多无人机协同三维避障路径规划中的应用,旨在解决复杂环境下多无人机安全、高效飞行的路径规划问题。通过引入多种优化策略对传统蜣螂算法进行改进,显著增强了算法的全局搜索能力、收敛速度与避障性能,并结合三维空间建模与多无人机协同机制,构建以路径成本(如距离、高度、威胁、转角等)为目标函数的优化模型。文中系统阐述了算法设计原理、路径规划建模方法及仿真实验过程,通过多场景对比实验验证了MSDBO算法在路径安全性、规划效率和多机协同性方面的优越性与鲁棒性。; 适合人群:具备一定算法基础和MATLAB编程能力,从事无人机控制、路径规划、智能优化算法研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①解决城市、山区等复杂环境下的多无人机协同飞行路径规划问题;②提升无人机集群在动态障碍物环境中的自主避障与协同能力;③为智能交通、应急救援、军事侦察等领域的多智能体路径规划提供技术支持。; 阅读建议:建议结合提供的Matlab代码进行仿真实践,深入理解算法实现细节与参数调优方法,同时可尝试在不同场景下测试算法性能,进一步掌握其适用边界与优化潜力。

【编号326】全国地灾数据全国25万多个地质灾害点空间分布数据

全国地质灾害点分布数据涵盖25万多个各类灾害点信息,为灾害防治提供重要依据。通过分析灾害分布规律,可识别高风险区,指导监测预警、应急避险和基础设施建设。多地成功案例(如湖北兴山崩塌避险、重庆长寿滑坡预警、湖南"挪床行动")证明,提前预警和科学防治能有效避免人员伤亡。云南省2024年通过预警体系成功避让31起灾害,保护1342人生命安全。这些实践表明,地质灾害防治需结合科技手段与群防体系,实现早预警、早处置。

千奇百怪无奇不有 1474

刷野打怪上王者·C++篇·第23期·标准流输入输出

参考链接 RUNOOB.COM 标准流输入输出 输入流:字节流从设备(键盘、磁盘驱动器、网络连接)流向内存。输出流:从内存流向设备(显示屏、打印机、磁盘驱动器)。这里主要说明<iostream>中的cin(标准输入流)、cout(标准输出流)、cerr(非缓冲标准错误流)、clog(缓冲标准错误流)对象。 实例程序 #include <iostream>...

CSS360的博客 406

CDDT CST CDDT CSTTT

This is the second part of the SA8653 automotive CDDT configuration guide. It describes the matching rules and modification methods between CDDT and device‑tree DDTS. It explains CDT’s underlying logic and configuration in TZ, QNX and Android. It details C

qq_39257814的博客 1413

刷野打怪上王者·C++篇·第13期·类&对象

参考链接 RUNOOB.COM 类 这个其实在前面讲的时候,就已经涉及过类的使用,现在使用文字描述一下。C语言是面向过程的编程,C++是面向对象的过程。类说白了就是用户定义的类型,类中的数据和方法(可以理解为一个个函数)称为类的成员。下面说一下类的使用,类的定义是以class关键字开头,主体是花括号的内容,下面来说明一下: class 类型 { public: ...

CSS360的博客 392

在 PFCG 中完成 SAP Fiori 对象分配:把 Business Catalog、Space、Page 与授权一次讲透

摘要:SAP Fiori权限配置的关键在于理解Business Catalog与Space的分层授权逻辑。传统SAP GUI中直接分配事务码的方式不适用于Fiori环境,必须通过PFCG为角色分配Catalog(提供应用访问权限)和Space(控制首页展示结构)。Catalog会自动解析所需OData服务授权,而Space则决定用户在Launchpad中看到的导航布局。常见错误包括直接分配Page而非其所属Space,或仅配置Space而忽略Catalog。最佳实践是优先使用Catalog驱动授权提议,再在

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 327

Python爬虫教程:抓取电商网站评论(以淘宝和京东为例)

通过本文的介绍,我们学会了如何使用Python编写爬虫,抓取淘宝和京东等电商平台的商品评论数据。我们介绍了如何使用电商平台提供的开放API以及如何通过模拟浏览器来抓取动态加载的数据。此外,我们还讨论了如何应对反爬虫技术,如何存储抓取的数据等。爬取电商平台的数据是一个强大的工具,能够为市场分析、消费者行为研究、产品优化等领域提供有力的支持。然而,在使用爬虫技术时,我们必须遵循法律法规,尊重平台的隐私政策,避免滥用数据。

2201_76125261的博客 1738

刷野打怪上王者·C++篇·第1期·简介

参考链接 RUNOOB.COM 好记性不如烂笔头 历史 要看历史我认为还是要去百度百科看比较详细(链接),但要简单来说的话,1979年Bjame Sgoustrup在Bell实验室设计开发的,在1983年更名为C++。其中对C++发展很重要的一件事,就是Alexander stepanov创建了标准模板库(Standard Template Library,STL),并加入到C+...

CSS360的博客 384

【SpringBoot 3.x 第51节】带你玩转 GraalVM Native Image:启动快到飞起,内存省到心疼,你还不试试?

🏆本文收录于《滚雪球学SpringBoot 3》,专门攻坚指数提升,本年度国内最系统+最专业+最详细(永久更新)。    本专栏致力打造最硬核 SpringBoot3 从零基础到进阶系列学习内容,🚀均为全网独家首发,打造精品专栏,专栏持续更新中…欢迎大家订阅持续学习。 如果想快速定位学习,可以看这篇【SpringBoot3教程导航帖】,你想学习的都被收集在内,快速投入学习!!两不误。    若还想学习更多,可直接前往《滚雪球学SpringBoot(全版本合集)》,涵盖SpringBoot所有版本教学文章

**My Coding Family** 1306

刷野打怪上王者·C++篇·第15期·重载操作

参考链接 RUNOOB.COM 重载操作 重载操作分为重载运算和重载函数。 重载函数 在同一个作用域内,可以声明几个功能类似的同名函数,但是这些形式参数(参数个数、数据类型或者顺序)不同。不能通过返回类型来重载函数。 #include <iostream> using namespace std; class dataDisposeClass { pu...

CSS360的博客 376

iStoreOS等软路由插件卸载的残留?分享一款软路由高级卸载工具,自定义卸载,轻松解决卸载残留问题

iStoreOS用户看过来!👀 还在被插件包残留困扰吗?本文分享一款“高级卸载”的插件,助你深度清理iStoreOS系统,彻底解决软件卸载不净的痛点,告别频繁恢复出厂设置的烦恼!🚀

XiaoqiangClub的博客 1548

【C2000系列DSP的Bootloader详解】如何利用脚本自动合并Bin文件

本文通过OutconvertBin.py实现了 C2000 Bootloader+UserApp 的「ELF 转 BIN+BIN 合并」全流程自动化,核心优势如下: 架构适配:严格遵循 C28x 16 位大端格式,生成的 BIN 文件可直接烧录; 自动化程度高:一键完成清理、转换、合并,无需手动执行多个命令; 可追溯性:生成 CRC32 校验值,便于验证文件完整性; 量产友好:合并后的merged.bin支持一次性烧录,提升量产效率。

昔时扬尘处 185

刷野打怪上王者·C++篇·第22期·多线程处理

参考链接 RUNOOB.COM 多线程处理 在电脑中可以进行多任务处理,其中多任务的处理方式分为两种:多进程和多线程。多进程是程序的并发执行;多线程是同一程序判断并发执行。 实例程序 #include <iostream> #include <utility> #include <thread> #include <chrono>...

CSS360的博客 364

SAP 批量修改 工艺路线 和 BOM

1、在运维的过程中经常会遇到用户需要批量更改组件,或者是批量更改数量,还是组件里面的一些标识,当处理这些批量数据处理的业务时,BOM的批量更改一个想到的就是CS20,但是CS20当BOM需要替换的时候就不是很适用。当前工作区域:选择 SAP_ITEM 对BOM行项目进行变更,工艺路线也是可以批量更改的,根据实际的业务进行选择,我这里选择的就是BOM的组件变更。5、本博客将使用新的一种方式进行BOM的批量变更,标准的事务代码:CEWB对BOM进行批量更改。3、使用LSMW的方式进行BOM的批量更改。

我小时候很黑的博客 4100

刷野打怪上王者·C++篇·第6期·变量&常量

参考链接 RUNOOB.COM 变量 其实变量就是一个名字,代指的可操作存储区的名称。也不是随便起个名字就可以,在C++中变量的名称由字母、数字和下划线组成。但必须以字母或下划线开头,并且区分字母的大小写。 估计大家对上一节讨论的字符数不是很清楚,一个字符对应8位(每位对应的就是0或者1)。我们拿一个特殊的类型来进行说明,float类型1位符号、8位指数、23位小数,下面拿...

CSS360的博客 359

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

刷野打怪上王者·C++篇·第2期·环境配置

参考链接 百度百科 C++环境设置MAC安装XCode、Command Line Tools 好记性不如烂笔头 C++开发环境 还是先说一个什么是集成开发环境(IDE):集成开发环境(IDE),功能齐全,调试功能很强,程序编好后,可以立刻在环境中调试以获得初步测试结果,然后,可以方便地做成beta版形式,拿到实际环境中进一步测试,最后做成软件发行版。 知道了概念就...

CSS360的博客 354

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

刷野打怪上王者·C++篇·第3期·HelloWorld

参考链接 RUNOOB.COM 好记性不如烂笔头 示例代码 我们还是先上HelloWorld代码,然后在慢慢细聊一下: #include <iostream> using namespace std; int main() { cout << "Hello, world!" << endl; return 0; } 结果:...

CSS360的博客 336

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

刷野打怪上王者·C++篇·第25期·动态内存处理

参考链接 RUNOOB.COM 动态内存处理 为什么会有这么一个概念呢?我们在写程序的时候,有的时候很难提前预知定义的变量需要申请多少内存,只有在程序运行的过程才能够确定。需要说明一点,在C++中内存由两部分组成:栈和堆。其中,函数内声明的所有变量使用栈来存储;对于程序未使用的可用于动态分配的内存则有堆完成。 要进行动态申请内存,C++提供了空间分配new运算符,还提供了...

CSS360的博客 330

刷野打怪上王者·C++篇·第5期·数据类型

参考链接 RUNOOB.COM 数据类型说明 我们思考一下,为什么会 出现数据类型。个人理解,首先作为一个好的程序员,就必须在实现特定功能的前提下,要保证较小的时间复杂度和空间复杂度。要做实现上面说的,当然最牛的就是算法。其实算法就是解决问题的一种方法,不过就是这个方法更高效。但要玩算法,最基本就是要合理申请数据空间。 上面知道了为什么,下面我们开始聊实际的。在C++的数据...

CSS360的博客 319

刷野打怪上王者·C++篇·第8期·运算操作

参考链接 RUNOOB.COM 运算操作 上几篇已经讲了C++中变量和数据存储,后面我们将讲对里面的数据进行操作需要C++提供了哪些运算符。C++中常见的运算符:算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、杂项运算符。 算术运算符:包括+(加)、-(减)、*(乘)、/(除)、++(自加)、--(自减)。下面我们通过程序来进行说明: #include <ios...

CSS360的博客 319

刷野打怪上王者·C++篇·第21期·模板处理

参考链接 RUNOOB.COM 模板处理 函数模板不是一个实在的函数,编译器不能为其生成可执行代码。定义函数模板后只是一个对函数功能框架的描述,当它具体执行时,将根据传递的实际参数决定其功能。模板分为函数模板和类模板。 函数模板的定义方式 template <class type1, class type2, ...> 返回类型 函数名(参数列表) { /*核...

CSS360的博客 318

刷野打怪上王者·C++篇·第26期·时间函数&预处理

参考链接 RUNOOB.COM 时间函数&预处理

CSS360的博客 313
上一篇: 菜鸟玩算法·数据结构与算法·第1期·复杂度基本概念
下一篇: 刷野打怪上王者·C++篇·第15期·重载操作
元宇宙MetaAI
博客等级 码龄10年 331粉丝 333原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值