C语言基础 第17章.ppt

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

第17章 类 的 继 承 17.1 继承 17.2 继承机制中的初始化 17.3 多重继承 17.4 虚基类 面向对象的程序设计方法提供了这样一种机制,即一个类可以从另一个类获得部分或全部属性。把这种机制称为继承(inheritance)。前者称为子类(child class)或派生类(derived class),后者称为父类(parent class)或基类(base class)。 面向对象技术的这个重要机制,为程序代码的重用提供了一个有效的手段,并且使程序更易于维护和扩充。 17.1 继 承 17.1.1 继承与派生类 类的继承与派生概念反映了客观世界中事物一般与特殊的关系,上下的层次关系,抽象与具体的关系。基类是派生类的抽象描述,派生类是基类的特例。从编程技术的角度看,继承机制提供了代码重用的手段。 从一个基类派生叫做单继承,从多个基类派生叫做多重继承。本节介绍单继承。 从已有的类(基类)派生出一个新类(派生类)的定义格式是: class 派生类名 : 继承方式 基类名 { private: 派生类新成员 protected: 派生类新成员 public: 派生类新成员 }; 继承方式用于规定基类成员在派生类中的访问权限,因此继承方式又称为访问控制或访问方式。 访问控制使用关键字public说明时,称为公有继承或公有派生。访问控制使用关键字private说明时,称为私有继承或私有派生。如果继承方式说明被省略,则隐含为private。 引入继承与派生的概念后,在类的成员中,出现了一种新的类成员:protected成员,称为保护成员。 17.1.2 公有派生 公有派生也称为公有继承。在公有派生的情况下,派生类可以访问基类中的公有和保护成员,不能访问基类的私有成员。也就是说,基类的public成员和protected成员分别继承为派生类的public成员和protected成员。派生类的成员可以直接访问它们。在派生类的外部只能通过派生类的对象访问基类的public成员。 例17.1.1 从类point(点)公有派生类circle(圆)。 首先,定义一个类point,它有两个私有数据成员:点的横坐标x和纵坐标y。三个公有的成员函数,用于操作数据成员x和y。类point的定义如下: class point { private: int x; int y; public: void set_point(int a,int b); int get_x(void); int get_y(void); }; 我们用这个类派生出一个类circle。其数据成员为圆的半径。因为,圆除了半径还需要一个点作为自己的圆心,而类“point”中已经有了这方面内容,所以,可以把类“point”作为基类,加以继承。于是定义类circle(圆)如下: class circle : public point { private: int radius; public: int get_radius(void); void set_radius(int num); void show(void); }; 这个例子选用public方式派生,所以,基类的所有public成员,就好像在circle类中说明过一样。当然,派生类中的成员函数不能访问基类的私有部分。如果把类point中的private改为protected,则派生类就能访问它们了。这就是说,protected成员可以被继承。 现在利用上面定义的基类point和派生类circle,编写主程序,实现定义和输出一个圆的功能。程序利用基类point的数据作为圆的圆心。派生类circle定义圆的半径。 程序如下: ? #includeiostream.h class point //定义基类point { private:

文档评论(0)

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

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

1亿VIP精品文档

相关文档