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

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

赞助商链接



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

对象(Object)是类(Class)的一个实例(Instance).假如将对象比作屋子,那么类就是屋子的计划图纸.所以面向对象计划的重点是类的计划,而不是对象的计划. 关于C++程序而言,计划孤独的类是对比简单的,难的是精确计划基类及其派生类.本章仅仅阐述“担当”(Inheritance)和“组合”(Composition)的概念.

注意,当前面向对象技术的利用热门是COM和CORBA,这些内容超越了C++教材的范围,请阅读COM和CORBA相关论著.

10.1 担当
假如A是基类,B是A的派生类,那么B将担当A的数据和函数.比方:

class A

{

public:

void Func1(void);

void Func2(void);

};

class B : public A

{

public:

void Func3(void);

void Func4(void);

};

main()

{

B b;

b.Func1(); // B从A担当了函数Func1

b.Func2(); // B从A担当了函数Func2

b.Func3();

b.Func4();

}

这个简单的示例程序阐明了一个事实:C++的“担当”特点可以提高程序的可复用性.正因为“担当”太有效、太简单用,才要避免乱花“担当”.我们该当给“担当”立一些利用法则.

l 【法则10-1-1】假如类A和类B毫不相关,不可认为了使B的功效更多些而让B担当A的功效和属性.不要认为“白吃白不吃”,让一个好端端的结实青年无缘无端地吃人参补身体.

l 【法则10-1-2】若在逻辑上B是A的“一种”(a kind of ),则答应B担当A的功效和属性.比方男子(Man)是人(Human)的一种,男孩(Boy)是男子的一种.那么类Man可以从类Human派生,类Boy可以从类Man派生.

class Human

{

};

class Man : public Human

{

};

class Boy : public Man

{

};

u 注意事项

【法则10-1-2】看起来很简单,但是实际利用时大概会有不测,担当的概念在程序世界与实际世界并不完好相同.

比方从生物学角度讲,鸵鸟(Ostrich)是鸟(Bird)的一种,按理说类Ostrich应当可以从类Bird派生.但是鸵鸟不能飞,那么Ostrich::Fly是什么东西?

class Bird

{

public:

virtual void Fly(void);

};

class Ostrich : public Bird

{

};

比方从数学角度讲,圆(Circle)是一种特别的椭圆(Ellipse),按理说类Circle应当可以从类Ellipse派生.但是椭圆有长轴和短轴,假如圆担当了椭圆的长轴和短轴,难道画蛇添足?

所以越发严峻的担当法则该当是:若在逻辑上B是A的“一种”,并且A的全部功效和属性对B而言都有意义,则答应B担当A的功效和属性.


  以上是“<b>高质量C++/C编程指南-第10章-类的担当与组合(1)</b>[VC/C++编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

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

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