- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 继承性
第九章 继承性 9.1 继承性9.1.1 继承和派生的概念 9.1.2 单一继承和多重继承 9.1.2 单一继承和多重继承 9.1.3 派生类的定义格式 由基类派生出派生类的定义的一般形式为: class 派生类名:访问限定符 基类名1,访问限定符 基类名2,…… { private: 成员表1; //派生类增加或替代的私有成员 public: 成员表2; //派生类增加或替代的公有成员 protected: 成员表3;//派生类增加或替代的保护成员 };//分号不可少 其中基类1,基类2,……是已声明的类。只有一个基类时,是单一继承,上述给出的形式是多重继承。 在派生类定义的类体中给出的成员称为派生类成员,它们可以是新增加成员,它们给派生类添加了不同于基类的新的属性和功能,当派生类成员名与基类成员名相同时,派生类成员将取代基类成员,成为更新成员。 9.1.3 派生类的定义格式 9.1.3 派生类的定义格式 9.1.4 基类成员在派生类中的访问权限 【例9.1】分析程序,指出访问权限的错误。 class Base{public:int b1;protected:int b2;private:int b3;}; class D1:public Base{public:void fun( ){b1=11;b2=12;b3=13;}}; class D2:private Base{public:void fun( ){b1=21;b2=22;b3=23;}}; class D3:protected Base{public:void fun( ){b1=31;b2=32;b3=33;}}; class D11:public D1{public:void fun( ){b1=111;b2=112;b3=113;}}; class D22:public D2{public:void fun( ){b1=221;b2=222;b3=223;}}; class D33:public D3{public:void fun( ){b1=331;b2=332;b3=333;}}; void main( ) { D11 d1;d1.b1=1;d1.b2=2;d1.b3=3; D22 d2;d2.b1=4;d2.b2=5;d2.b3=6; D33 d3;d3.b1=7;d3.b2=8;d3.b3=9; } 上述程序中有16处错误!注意,类的公有成员函数可调用类中的私有成员,但不可调用基类中的私有成员。使用对象只能调用本类中的公有成员。 9.2 单一继承9.2.1 单一继承程序举例 【例9.2】公有继承例子 #includeiostream.h class A //类A有哪些成员? {public:void fun1( );protected:int a1;private:int a2;}; class B:public A //类B有哪些成员? {public:void fun2( );protected:int b1;private:int b2;}; class C:public B //类C有哪些成员? {public:void fun3( );};......... void main( ) { C c;........... } 注意程序中对象c有哪些成员?可做那些操作? 【例9.3】私有单一继承程序举例。 #includeiostream.h class A{public:void fa(int i){coutiendl;} void ga( ){coutA.\n;} }; class B:A{public:void hb( ){ coutB.\n;} A::fa; }; //B继承A,用class说明,不指明权限的一定是私有 void main( ) { B b;b.fa(5);b.ga();b.hb( ); }//红色表示的,有错误。 私有继承将基类的公有、保护成员变为私有,成员函数可访问这些成员,但对象不可访问;间接私有继承(二次私有继承)后,原来的成员都不可访问。 【例9.4】保护单一继承程序举例。 #includeiostream.h #includestring.h class A {public:A(const char*name1){strcpy(name,name1);} protected:char name[80]; }; class B:protected A {public:B(cons
您可能关注的文档
最近下载
- 2025电动航空器电推进系统动力电机技术规范.docx VIP
- DB37╱T 3655-2019 化工园区大气环境风险监控预警系统技术指南(试行).pdf VIP
- 百灵达FLOW-8快速使用说明书.pptx VIP
- 化工园区危险品运输车辆停车场建设标准.pdf VIP
- 《党政机关厉行节约反对浪费条例》专题党课PPT课件模板.pptx VIP
- T/HGJ 10600-2019 烧碱装置安全设计标准.docx VIP
- 最新清晰版ISO50001(中word版).docx VIP
- 临床医学 《门静脉高压症》教学课件.ppt VIP
- 最新:机械通气患者转运课件.pptx VIP
- (高清版)DB44∕T 2598-2024 《省级体育社会团体建设规范》.pdf VIP
文档评论(0)