C++的“继承”特性可以提高程序的可复用性。正因为“继承”太有用、太容易用,才要防止乱用“继承”。我们要给“继承”立一些使用规则:

一、如果类A 和类B 毫不相关,不可以为了使B 的功能更多些而让B 继承A 的功能。
不要觉得“不吃白不吃”,让一个好端端的健壮青年无缘无故地吃人参补身体。
二、如果类B 有必要使用A 的功能,则要分两种情况考虑:
(1)若在逻辑上B 是A 的“一种”(a kind of ),则允许B 继承A 的功能。如男人(Man)是人(Human)的一种,男孩(Boy)是男人的一种。那么类Man 可以从类Human 派生,类Boy 可以从类Man 派生。示例程序如下:
复制代码 代码如下:
class Human
{
…
};
class Man : public Human
{
…
};
class Boy : public Man
{
…
};
(2)若在逻辑上A 是B 的“一部分”(a part of),则不允许B 继承A 的功能,而是要用A和其它东西组合出B。例如眼(Eye)、鼻(Nose)、口(Mouth)、耳(Ear)是头(Head)的一部分,所以类Head 应该由类Eye、Nose、Mouth、Ear 组合而成,不是派生而成。示例程序如下:
复制代码 代码如下:
class Eye
{
public:
void Look(void);
};
class Nose
{
public:
void Smell(void);
};
class Mouth
{
public:
void Eat(void);
};
class Ear
{
public:
void Listen(void);
};
// 正确的设计,冗长的程序
class Head
{
public:
void Look(void) { m_eye.Look(); }
void Smell(void) { m_nose.Smell(); }
void Eat(void) { m_mouth.Eat(); }
void Listen(void) { m_ear.Listen(); }
private:
Eye m_eye;
Nose m_nose;
Mouth m_mouth;
Ear m_ear;
};
如果允许Head 从Eye、Nose、Mouth、Ear 派生而成,那么Head 将自动具有Look、Smell、Eat、Listen 这些功能:
// 错误的设计
class Head : public Eye, public Nose, public Mouth, public Ear
{
};
上述程序十分简短并且运行正确,但是这种设计却是错误的。这就开头所说的很多程序员经不起“继承”而犯下设计错误。
相关推荐:
Goanno跨级借鉴:推动创新与提升效率的秘密武器,崇明区智能ai艾灸费用
优化工具:提升工作效率的秘密武器,网站模板的优化策略是什么
360ai问答-智能时代的全能助手,未来的智慧生活,ai生成白底
打造内容创作新时代:有言AI生成助力创作者释放灵感
AI免费文章生成器:轻松创作高质量内容的终极工具
AI智能工具的无限可能:未来已来,你准备好了吗?
怎么查一篇文章是不是AI写的?你需要这几个关键方法!
ChatGPT页面怎么拖不动?解决问题的终极指南,日韩AI换脸在线观看
了解SEO:让你的网站在搜索引擎中脱颖而出的秘密武器,宝山区常见网站优化
360排名优化价格:打造高效网络营销的制胜法宝,ai换脸刘浩存自wei
SEO技巧提升网站流量:打造高效网站的关键策略,Ai测脸相
为什么选择B站VIP?让你畅享更丰富的视听体验,小门类网站seo
什么是seo平台seo教程,什么是 seoseo有何价值 ,论文写作ai助手公众号
seo需要什么部门,seo主要干什么 ,ai接入仪器
seo要学什么技术,seo要学什么技术好 ,ai.fale
二SEO是什么,h二seo三是什么 ,ai手术机
AI自动生成:开启智能时代的无限可能,ai熊熊图片
人工AI软件的未来:智能时代的创新驱动力
SEO要不,来看看如何通过SEO优化提高网站流量和曝光度,seo 获客技巧
什么是神马排名?让你的网站脱颖而出,轻松占据搜索引擎的C位!,乳山网站优化关键词排名
SEO模块:提升网站排名,驾驭数字营销未来,营口网站建设制作平台
ChatGPT内部HTTP接口文档-为开发者提供高效便捷的AI服务接入方式,安屿ai
ChatGPT异常了:人工智能的极限与突破,ai and ethics
seo自己做什么,自己做seo需要花钱吗 ,ai850775
如何快速写出高质量的AI文章:从入门到精通
怎么用AI写出令人惊叹的文章?轻松搞定写作难题!
SEO课:让你从小白变成搜索引擎优化高手,推广自媒体营销计划
ChatGPT显示无法加载网站是怎么回事?解决方法!,glow将军ai
文章AI思维导图自动生成助力创作的智慧之源
SEO优化中怎么找关键词:全面解析与实战技巧,ai2002.4.8
亚马逊站内seo是什么优化,亚马逊seo关键词优化软件 ,ai画卡通章鱼
seo需要学习什么语言,做seo需要懂什么技术 ,ai软件制作教程
ChatGPT启动时遇到问题?快速解决方案让你畅享智能对话体验,ai如何保存logo
SEO结构优化:助力网站提升排名与流量的关键策略,杭州小网站推广哪家好做
SEO优化10种策略:提升网站排名的有效方法,帅气ai男头白底
seo要公司什么资源,做seo需要用到什么软件 ,ai明星换了
ChatGPT破解:让AI打破语言与思维的边界,ai模板vis
SEO网:让你的数字营销更加精准高效,开启网络引流新时代,丰县互联网网站推广优势
SEO优化与SEM广告:提升品牌曝光与流量的双重利器,ai接回头
SEO精通:让你的内容在搜索引擎中脱颖而出,跨境电商 推广营销
ChatGPT安装包Windows版:让AI助力你的工作与生活,人工智能ai不是梦在线
好用的AI写作软件免费推荐:创作新境界!
AI搜索写文章:一丝丝智慧背后的无限可能,电脑免费ai写作神器
seo适合什么行业,seo适合的行业 ,在ai如何矢量化
SEO外,如何提升网站整体营销效果?,文轩网络营销推广方案
为什么“未备案域名”会成为互联网行业中的重要问题?,江干区seo优化价格
为什么seo吸引人,为什么seo吸引人呢 ,ai路径查找器绘制树
ChatGPT充值打不开?这几招教你轻松解决问题!,免费的ai写作绘图
优化平台:让数字化转型更简单、更高效,莆田谷歌seo品牌排行
专业SEO方案助力企业网站流量暴增,精准引流不再是难题,网站建设合同4篇