面向对象难题,闲人请进

noho noho 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
class CBase是一个类体系的基类,其它所有的类都从这个类派生
函数Equal原型如下,输入两个对象,比较这两个对象是否相等(不是指针相等!!!)
bool Equal(const CBase & obj1, const CBase & obj2)
或
bool Equal(const CBase * obj1, const CBase * obj2)
我尝试设计了两种方法
1、
class CBase
{
public:
virtual bool Equal(const CBase & rhs) const = 0;
};
2、
class CBase
{
public:
bool operator==(const CBase & rhs);
};
对于第一种方法,子类必须像下面的代码这样
class CFoo : public CBase
{
public:
virtual bool Equal(const CBase &rhs) const
{
};
};
Equal的实现就必须使用RTTI或者MFC的RUNTIME_CLASS机制,但是这两种机制个人觉得都不太好。
对于第二种方法,由于operator==不是虚的,所以Equal函数调用的是CBase::operator==,如果改成虚的,还会碰上和方法1一样的问题。

当然,在C++中,模板也是一种解决办法,但是不符合基于CBase的类体系。
另外,.NET Framework的Object就有Equals方法,不知道它是怎么实现的?
...全文

相关推荐

闲人送饭系统

web程序设计,JSP,java,SQLserver

Sylvia2015

高校技术转移办公室人员在技术成果离校前,如何高效完成知识产权状态审核?.docx

高校技术转移办公室人员在技术成果离校前,如何高效完成知识产权状态审核?

BIZKEEN

论文复现基于变频与移相协同控制的全桥LLC变换器模式切换平滑性优化(Simulink仿真实现)

内容概要:本文围绕“基于变频与移相协同控制的全桥LLC变换器模式切换平滑性优化”开展研究,通过Simulink仿真实现对全桥LLC谐振变换器在不同工作模式间切换时动态性能的优化。研究复现了IEEE相关文献中的先进控制策略,重点解决传统控制方式下模式切换过程中易出现的电压电流冲击、效率下降及软开关丢失等问题。通过融合变频控制(Frequency Modulation)与移相控制(Phase Shift Control)的协同机制,实现了宽范围内的软开关维持与平滑过渡,有效提升了系统在负载突变或输入波动时的动态响应能力。文中详述了控制逻辑的设计思路、仿真模型的构建过程以及关键波形的对比分析,充分验证了该协同策略在降低开关损耗、抑制瞬态冲击和增强系统稳定性方面的优越性。; 适合人群:电力电子、电气工程及其自动化等相关专业的研究生、科研人员及从事高性能电源设计的工程技术人员,尤其适合具备一定电路拓扑分析能力和Simulink/MATLAB仿真基础的学习者。; 使用场景及目标:①深入理解全桥LLC变换器在不同负载条件下的工作模态及其切换机理;②掌握变频与移相结合控制策略的设计方法,为高效率、高可靠性DC-DC变换器的研发提供关键技术支撑;③用于支撑高水平学术论文复现、科研课题攻关或工业级电源产品的控制算法验证与优化。; 阅读建议:建议读者结合提供的Simulink仿真模型进行同步操作,重点关注变频与移相控制的时序配合、模式切换逻辑及参数整定方法。通过对比传统单一控制与协同控制下的仿真结果,深入分析电压、电流及驱动信号的动态响应差异,从而掌握实现平滑切换的核心技术要点。同时可参考文中引用的LLC先进控制文献,进一步拓展对谐振变换器多模态控制的理解。

程序猿鑫

《CorelDRAW项目实践教程(第五版)》教学大纲+课件+教案

《CorelDRAW项目实践教程(第五版)》教学大纲+课件+教案

qq_38220914

蚀刻清洗气体:先进制程与低排放要求推动电子特气升级.docx

蚀刻清洗气体:先进制程与低排放要求推动电子特气升级

行业报告QY
评论 5
收藏 已收藏
分享
返回顶部
noho
C++ 语言 65,214 成员 250,514 内容