C 应用与开发案例教程(中)ppt254.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C 应用与开发案例教程(中)ppt254

6.1 概述 继承是C++语言的一种重要机制,该机制允许在既有类的基础上定义新的类,而不需要把既有类的内容重新书写一遍。继承是通过派生方式实现的。 一个基类可以派生出多个派生类,这种从一个基类中的继承叫单继承。如果一个派生类由多个基类派生出来,称为多继承。派生类也可以作为基类再派生出新的类,形成类的层次结构。 类有三种继承方式:公有继承(public)、私有继承(private)和保护继承(protected)。我们可以通过不同的继承方式限定成员的访问权限,以达到修改已有成员的目的。我们还可以通过同名覆盖、作用域限定符和虚基类的方法达到此目的。派生类继承了基类的所有成员,但构造函数和析构函数除外,因此,在派生类中,想要进行特别的初始化和清理工作时,就要加入新的构造函数和析构函数。 6.1 概述 多态性是面向对象程序设计中的又一重要特征,多态的实现可分为编译时的多态和运行时的多态。编译时的多态,指程序在编译过程中确定函数操作的具体对象,通过函数重载来实现;运行时的多态,是指程序在运行过程中才能确定函数操作的具体对象,通过虚函数来实现。虚函数为我们提供了一种更为灵活的多态性机制,它体现的是运行时的多态,它允许函数调用与函数体之间的关系在运行时才建立。虚函数是用virtual关键字声明的非静态成员函数。当将基类的同名函数定义为虚函数时,我们就可利用基类类型的指针访问该指针指向的派生类对象的同名原型函数,从而实现运行过程的多态。 6.2 派生类的概念 6.2.1 基类和派生类 继承性在客观世界中是一种常见的现象。例如:当一个小孩出生时,就从父亲和母亲那里继承了一定的特征。随着时间的推移和环境的变化,这个小孩逐渐有了自己的性格特征,因此这个小孩就具备了从父母那里继承来的以及自己所独有的特征的组合。 从面向对象程序设计的观点看,继承所表达的正是这样一种类与类之间的关系,这种关系允许在既有类的基础上创建新的类。在最简单的情况下,一个类B继承类A或者从类A派生出类B,通常类A称为基类(父类),类B称为派生类(子类)。这时,类B的对象具有类A对象的所有特性。也可以这样说,类B从类A派生出来。这意味着类B至少描述了与类A同样的接口,至少包含了同类A一样的数据,可以共享类A的成员函数。 6.2 派生类的概念 类B继承了类A(或称类A派生了类B),那么类A的公有段成员可以传递给派生类B,当作类B自己的成员。在创建派生类对象时,先要调用基类的构造函数,以便分配基类的公有段成员存储空间;实际上,由于调用了构造函数,一个派生类对象包含有一个基类对象,只是对于派生类而言,不能访问基类的私有段成员。 派生类的定义格式如下: class 派生类名:继承方式 基类名 { //派生类成员定义 } 6.2 派生类的概念 在上面的格式中,派生类名是新定义的一个类名,它是从由“基类名”所标识的类派生而来的。这样定义的派生类继承了基类的除了构造函数和析够函数之外的所有成员,因此派生类对象由两部分组成:一部分是由基类继承的成员,另一部分是派生类新增加的自己特有的成员。 “继承方式”用于规定派生类中从基类继承到的那部分成员在派生类中的访问控制权限。继承方式可用下列3个关键字之一来指定:public:公有继承;protected:保护继承; private:私有继承。 6.2 派生类的概念 【例6-1】 #includeiostream.h class A { private: int pri; public: int pub; void set_pri (int a) { pri=a; } void set_pub (int a) { pub=a; } void out_pri( ) { coutpri” ”endl; } }; class B:public A { private: int pri1; public: int pub1; void set_pri1(int a) { pri1=a; } 6.2 派生类的概念 void set_pub1(int a) { pub1=a;

文档评论(0)

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

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

1亿VIP精品文档

相关文档