4--派生类与继承(2007版).pptx

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

派生类与继承 1、 类之间的关系 2、 派生类的概念 3、 派生类的构造函数与析构函数 4、 调整派生类中基类成员的访问属性 5、 多重继承 6、 赋值兼容规则 兰州理工大学计算机与通信学院 年福忠 1、类之间的关系 has-A,uses-A 和 is-A has-A(包含关系),用以描述一个类由多个“部件类”构成。实现has-A关系用类成员表示,即一个类中的数据成员是已定义的类。 uses-A(一个类部分地使用另一个类),通过类之间成员函数的相互联系,定义友员或对象参数传递实现。 is-A(继承)。关系具有传递性,不具有对称性。 非对称性:不是所有植物都属于蕨类。 传递性: 高等植物、蕨类植物、芒萁都是植物,具有植物的共同特征。 植物 继承关系 继承 是类之间定义的一种重要关系。 一个 B 类继承A类,或称从类 A 派生类 B 类 A 称为基类(父类),类 B 称为派生类(子类) B1,B2 的基类 A 的派生类 C1,C2,C3 的基类 A 的派生类(单继承) C3的基类 B1,B2 的派生类(多继承) B1 的派生类 继承关系 class person { protected: char name[10]; int age; char sex; public: void print( ); }; class employee { protected: char name[10]; int age; char sex; char department[20]; float salary; public: void print( ); }; 为什么要用继承? 继承:保持已有类的特性而构造新类的过程。 派生:在已有类的基础上新增自己的特性而产生新类的过程。 继承的目的:实现代码重用。 派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有程序进行改造。 2、派生类的概念 继承关系的语法形式 class 派生类名 : 基类名表 { 数据成员和成员函数声明 }; 派生类的声明 派生类的功能: 可以增加新的数据成员; 可以增加新的成员函数; 可以重新定义基类中已有的成员函数; 可以改变现有成员的属性。 基类名表 构成 访问控制 基类名1,访问控制 基类名2 ,… ,访问控制 基类名n 访问控制:表示派生类对基类的继承方式 public 公有继承 private 私有继承 protected 保护继承 派生类的声明 派生类对基类成员的使用,与继承访问控制和基类中成员性质有关; 公有继承 基类的公有成员?派生类的公有成员 基类的保护成员?派生类的保护成员 私有继承 基类的公有成员和保护成员 ?派生类的私有成员 保护继承 基类的公有成员和保护成员 ?派生类的保护成员 不论什么方式继承基类,派生类都不能直接使用基类的私有成员。 访问控制 (1)公有继承 #includeiostream.h class A { public : void get_XY() { cout Enter two numbers of x, y : ; cin x y ; } void put_XY() { cout x = x , y = y \n ; } protected: int x, y ; }; class B : public A { public : int get_S() { return s ; }; void make_S() { s = x * y ; }; // 使用基类数据成员 x,y protected: int s; }; class C : public B { public : void get_H() { cout Enter a number of h : ; cin h ; } int get_V() { return v ; } void make_V() { make_S(); v = get_S() * h ; } // 使用基类成员函数 protected: int h, v

文档评论(0)

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

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

1亿VIP精品文档

相关文档