C语言继承与派生.ppt

  1. 1、本文档共99页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 继承与派生 7.1 继承与派生 7.2 多继承 7.3 类的继承方式 7.4 派生类的构造和析构函数 7.5 派生中成员的标识与访问 7.6 虚基类 7. 7 类模板的派生和继承 7.1 继承与派生 7.1.1 继承与派生的概念 举个简单的例子:“狗”和“黑狗”。当谈论“狗”的时候,知道它是哺乳动物,有4条腿,1条尾巴,喜欢啃肉骨头,……。现在谈论“黑狗”,人们会怎么说呢?当然可以说:“黑狗是一种哺乳动物,有4条腿,1条尾巴,喜欢吃肉骨头,……,并且它的毛是黑色的”。但是人们一般都不这么说,而是说:“黑狗就是黑毛的狗”。比较一下这两种说法,显然后一种说法更好。那么它好在哪里呢?第一,它更简炼;第二,更重要的是它反映了“狗”和“黑狗”这两个概念的内在联系。“狗”和“黑狗”之间存在一条重要的联系,那就是所有的“黑狗”都是“狗”,或者说,“黑狗”是一类特殊的“狗”。根据这一条,“狗”所具有的特征,例如4条腿,1条尾巴等,“黑狗”自然都具有。也就是说,“黑狗”从“狗”那里继承了“狗”的全部特征。 所谓继承,就是新的类从已有类那里得到已有的特性。从另一个角度来看,从已有类产生新类的过程就是类的派生。已有的类称为基类或父类,产生的新类称为派生类或子类。派生类同样也可以作为基类再派生新的类,这样就形成了类的层次结构。 类的继承和派生的层次结构,可以说是人们对自然界中的事物进行分类、分析和认识的过程在程序设计中的体现。现实世界中的事物都是相互联系、相互作用的,人们在认识过程中,根据事物的实际特征,抓住其共同特性和细小差别,利用分类的方法进行分析和描述。 C++中有两种继承:单一继承和多重继承。对于单一继承,派生类只能有一个基类;对于多重继承,派生类可以有多个基类。 7.1. 2 单一继承的派生类声明 在C++中,派生类的一般声明语法如下: class派生类名:[继承方式]基类名 { 派生类成员声明; }; 其中: ① class是类声明的关键字,用于告诉编译器下面声明的是一个类。 ② 派生类名是新生成的类名。 ③ 继承方式规定了如何访问从基类继承的成员。继承方式关键字为private、public和protected,分别表示私有继承、公有继承和保护继承。如果不显式地给出继承方式关键字,系统的默认值就认为是私有继承(private)。类的继承方式指定了派生类成员以及类外对象对于从基类继承来的成员的访问权限,这将在7.3节中详细介绍。 ④ 派生类成员指除了从基类继承来的所有成员之外,新增加的数据和函数成员。这些新增的成员正是派生类不同于基类的关键所在,是派生类对基类的发展。当重用和扩充已有的代码时,就是通过在派生类中新增成员来添加新的属性和功能。可以说,这就是类在继承基础上的进化和发展。 例如,从基类vehicle(汽车)公有派生car(小汽车)类的声明形式如下: class vehicle //基类vehicle类的声明 { private: //私有数据成员 int wheels; float weight; public: //公有函数成员 void initvehicle(int in_wheels,float in_weight); int get_wheels(); float get_weight(); //... }; class car: public vehicle //派生类car类的声明 { private: //新增私有数据成员 int passenger_load; public: //新增公有函数成员 void initcar(int in_wheels , float in_weight , int people=4); int get_passengers(); //... }; 7.1.3 派生类生成过程 仔细分析派生新类这个过程,实际是经历了三个步骤:吸收基

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档