C++ 多继承之 虚基派生(继承) 解决错误(活动) E0266 ““ 不明确错误 C2385 对“”的访问不明确

前言

        c++多态是在方法上进行抽象进行分类和统一,而多继承的出现大大提升了c++编程的灵活性和易用性,专业的说法就是提高内聚,降低耦合。但是呢,多继承的使用中一定会遇到基于同一个基类的拍生类再次被某个类所继承的情况,于是

        纷争开始了。。。

        

举个栗子

        我们现在设计一个游戏的人物或者叫装备或者叫身体系统,实现思路呢主要是把一个游戏角色的身体拆分为各个部分,每个部分可以单独强化和习得技能什么的。最后由各个部分组成一个完整的角色。

        ①、首先我们针对一些通用属性,比如等级啊,天赋啊什么的,设计一个基类,就叫素质好了

class 素质
{
public:
	素质();
	~素质();

protected:
	virtual void Get潜力();
	virtual void Get力量();
	virtual void Get等级();
};

        咱可以获取每个装备或者叫身体部分的潜力登记什么的属性。

        ②、设计基于该类派生的手啊,腿啊,脑袋啊。当然也可以是对应部位的装备。

class 手臂:素质
{
public:
	手臂();
	~手臂();

protected:
	virtual void 打拳();
	virtual void 神掌();
	virtual void 龙抓手();
	virtual void 划水();
};

class 腿 :素质
{
public:
	腿();
	~腿();

protected:
	virtual void 踢腿();
	virtual void 蹬脚();
	virtual void 跑路();
};

        ③、我们用这些器官或者叫装备组合成一个人物角色,这里简化代码就只有手和脚了

class 鲁班七号:腿,手臂,素质
{
public:
	鲁班七号();
	~鲁班七号();

private:
	void 组合技1()
	{
		this->打拳();
		this->蹬脚();
		this->龙抓手();
	}

	void 组合技2()
	{
		this->跑路();
		this->神掌();
		this->跑路();
	}

};

问题

        这当然是我们理想中想要的代码,但是实际上却是,鲁班七号类没办法明确他的属性来源,有直接继承的来源,和来自 手  以及腿这三个来源。

        而这种冲突也是十分容易理解的,因为继承后我们的素质基类出现了三份,然后自然地出错。

 解决方法

        c++引入了一个叫做虚基继承的东西,让基于同一个类的的东西仅保留一份,这也正是我们需要的。

        在继承类时在前面加上 virtual 即可。

class 鲁班七号:virtual 腿,virtual 手臂,virtual 素质

        至于访问控制符,按照设计需求自行加上即可。

《基于S7-200的全自动洗衣机控制系统》一文主要探讨了如何利用西门S7-200系列微型可编程控制器(PLC)来设计并实现全自动洗衣机控制系统。该系统旨在提升洗衣机的自动化水平,满足现代生活及工业生产对洗衣机功能的更高要求。S7-200系列PLC凭借其高性能与经济性,成为理想的控制设备,其丰富的设计知识和方法可确保系统的稳定性和可靠性。 洗衣机的历史可追溯至19世纪,从最初的木制手摇洗衣机到电动洗衣机,再到如今的全自动洗衣机,其发展经历了从半自动到全自动再到智能化的演变。全自动洗衣机可自动完成除放衣、取衣和启动之外的所有洗衣步骤,极大地便利了人们的生活。在工业领域,洗衣机也在不断进化,追求更高的效率、更低的能耗和更优化的结构。 全自动洗衣机的发展历程见证了技术创新的足迹。1932年,前装式滚筒全自动洗衣机的出现标志着洗衣机进入新阶段,其在一个滚筒内完成洗涤、漂洗和脱水全过程。此后,洗衣机技术不断进步,包括微电脑控制、新型洗涤方式、高速脱水和低噪音等特性。近年来,中国在全自动洗衣机制造技术上取得显著进步,产品种类丰富,技术性能优良,产量逐年增长。 全自动洗衣机的控制系统有多种类型,如单片机控制、PLC控制和工业控制计算机集中控制。单片机控制虽小巧、功耗低,但开发难度大,硬件保护机制复杂,可能增加故障率和维修成本;工业控制计算机则适合大型控制系统,提供强大的软硬件支持。而PLC因其卓越的抗干扰能力、高可靠性、编程便利性、操作简便性、维护快捷性和设计灵活性等优势,成为全自动洗衣机控制系统的首选。S7-200系列PLC的模块化设计使系统扩展和维护更简单,能够快速完成设计和调试,推动洗衣机控制系统向更高级别的自动化迈进。基于S7-200的全自动洗衣机控制系统是现代科技与传统家电的完美结合,体现了PLC技术在日常生活中的广泛应用和价值。通过深入理解和掌握PLC的工作原理和编程技巧,可
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值