当前位置:七道奇文章资讯编程技术VC/C++编程
日期:2011-03-22 13:55:00  来源:本站整理

高质量C++/C编程指南-第10章-类的担当与组合(2)[VC/C++编程]

赞助商链接



  本文“高质量C++/C编程指南-第10章-类的担当与组合(2)[VC/C++编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

10.2 组合
l 【法则10-2-1】若在逻辑上A是B的“一部份”(a part of),则不答应B从A派生,而是要用A和别的东西组合出B.

比方眼(Eye)、鼻(Nose)、口(Mouth)、耳(Ear)是头(Head)的一部份,所以类Head应当由类Eye、Nose、Mouth、Ear组合而成,不是派生而成.如示例10-2-1所示.

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;

};

示例10-2-1 Head由Eye、Nose、Mouth、Ear组合而成

假如答应Head从Eye、Nose、Mouth、Ear派生而成,那么Head将自动具有Look、 Smell、Eat、Listen这些功效.示例10-2-2非常简短并且运行精确,但是这种计划办法倒是不对的.

// 功效精确并且代码简便,但是计划办法不对.

class Head : public Eye, public Nose, public Mouth, public Ear

{

};

示例10-2-2 Head从Eye、Nose、Mouth、Ear派生而成

一只公鸡用力地追打一只刚下了蛋的母鸡,你知道为什么吗?

因为母鸡下了鸭蛋.

很多程序员经不起“担当”的引诱而犯下计划错误.“运行精确”的程序不见得是高质量的程序,此处就是一个例证.


  以上是“高质量C++/C编程指南-第10章-类的担当与组合(2)[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>高质量C++/C编程指南-第7章-内存管理(6)</b>
  • 高质量C++/C编程指南-第7章-内存管理(7)
  • 高质量C++/C编程指南-第8章-C++函数的高级特点(1)
  • 高质量C++/C编程指南-第8章-C++函数的高级特点(2)
  • 高质量C++/C编程指南-第8章-C++函数的高级特点(3)
  • <b>高质量C++/C编程指南-第8章-C++函数的高级特点(4)</b>
  • <b>高质量C++/C编程指南-第9章-类的构造函数、析构函数与赋值函数(1</b>
  • 高质量C++/C编程指南-第9章-类的构造函数、析构函数与赋值函数(2
  • 高质量C++/C编程指南-第9章-类的构造函数、析构函数与赋值函数(3
  • 高质量C++/C编程指南-第9章-类的构造函数、析构函数与赋值函数(4
  • <b>高质量C++/C编程指南-第10章-类的担当与组合(1)</b>
  • 高质量C++/C编程指南-第10章-类的担当与组合(2)
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .