- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++语言程序设计教程 第9章 多态性 9.4 抽象类 抽象类是一种特殊的类,是为了抽象的目的而建立的,建立抽象类,就是为了通过它多态地使用其中的成员函数,为一个类族提供统一的操作界面。抽象类处于类层次的上层,一个抽象类自身无法实例化,也就是说我们无法声明一个抽象类的对象,而只能通过继承机制,生成抽象类的非抽象派生类,然后再实例化。 9.4.1 纯虚函数 纯虚函数(pure virtual function)是一个在基类中说明的虚函数,它在该基类中没有定义具体实现,要求各派生类根据实际需要定义函数实现。纯虚函数的作用是为派生类提供一个一致的接口。 纯虚函数定义的形式为: virtual 函数类型 函数名(参数表)=0; 实际上,它与一般虚函数成员的原型在书写格式上的不同就在于后面加了=0。 C++中,有一种函数体为空的空虚函数,它与纯虚函数的区别为: ① 纯虚函数根本就没有函数体,而空虚函数的函数体为空。 ② 纯虚函数所在的类是抽象类,不能直接进行实例化,空虚函数所在的类是可以实例化的。 ③ 它们共同的特点是都可以派生出新的类,然后在新类中给出新的虚函数的实现,而且这种新的实现可以具有多态特征。 C++语言程序设计教程 第9章 多态性 9.4.2 抽象类与具体类 抽象类具有下述一些特点: (1) 抽象类只能作为其它类的基类使用,抽象类不能定义对象,纯虚函数的实现由派生类给出; (2) 派生类仍可不给出所有基类中纯虚函数的定义,继续作为抽象类;如果派生类给出所有纯虚函数的实现,派生类就不再是抽象类而是一个具体类,就可以定义对象。 (3) 抽象类不能用作参数类型、函数返回值或强制类型转换。 (4) 可以定义一个抽象类的指针和引用。通过抽象类的指针和引用,可以指向并访问各派生类成员,这种访问是具有多态特征的。 【例9-9】抽象类的使用 前面,在学习多重继承时,我们定义了点(Point)、圆(Circle)、圆柱体(Cylinder)三者的关系,点派生出圆、圆派生出圆柱体,但无论是点、圆、还是圆柱体,它们都具有一定外形,属于一种形状(Shape)。因此,我们可以对前面的示例加以丰富和修改,定义一个抽象类Shape,由抽象类Shape派生出类Point,类Point派生出类Circle,类Circle 进一步派生出类Cylinder,…等等,最终形成一个类族。 C++语言程序设计教程 第9章 多态性 【例9-9】抽象类的使用 2 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 41 42 // p9_9.cpp * class Shape //抽象类 { public: virtual double area()const=0; virtual void show()=0; }; class Point:public Shape { protected: int X,Y; public: Point(int X=0,int Y=0) { this-X=X,this-Y=Y; } void show() { cout(X,Y)endl; } double area() const //求面积 { return 0.0; } }; const double PI=3.14159; class Circle :public Point { protected: double radius; //半径 public: Circle( int X, int Y,double R):Point(X,Y) { radius=R; } double area() const //求面积 { return PI*radius*radius; } C++语言程序设计教程 第9章 多态性 【例9-9】抽象类的使用 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 61 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 void show
您可能关注的文档
- 福建省石化产业十一五规划.doc
- 福州艺术节福州大洋晶典.ppt
- 祖国宝岛--台湾.ppt
- 福建省钢铁及有色金属产业调整和振兴实施方案.doc
- 福田区关于编制国民经济和社会发展第十三个五年规划的建议.doc
- 离心机日常保养-上海安亭科学仪器厂.doc
- 私立及人高级中学九十九学年度第二学期高中部一年级基础生物.doc
- 福田区-东北电力大学招生就业处.doc
- 福建省农业科学院主要合作单位.ppt
- 离子交换层析的基本操作.ppt
- 2025四川南充市公路管理局南充市水务局遴选3人笔试备考题库附答案解析.docx
- 2025年清水河县事业单位联考招聘考试历年真题完美版.docx
- 2025年正安县事业单位联考招聘考试历年真题完美版.docx
- 2025年金沙县事业单位联考招聘考试真题汇编新版.docx
- 2025年乐业县辅警招聘考试真题汇编及答案1套.docx
- 2025年新龙县事业单位联考招聘考试历年真题附答案.docx
- 2025年淮阳县事业单位联考招聘考试历年真题含答案.docx
- 2025年紫金县事业单位联考招聘考试真题汇编含答案.docx
- 2025年永福县事业单位联考招聘考试历年真题推荐.docx
- 2025年睢县事业单位联考招聘考试历年真题含答案.docx
最近下载
- 污水处理厂工程施工组织设计.doc VIP
- 国家开放大学电大本科《理工英语3》期末试题题库及答案1(试卷号:1377).docx VIP
- (正式版)S-H-T 3533-2024 石油化工给水排水管道工程施工及验收规范.docx VIP
- 粮食仓储企业安全生产作业指南.docx VIP
- 浙江省衢州市2024-2025学年高二上学期教学质量检测英语试题含答案.pdf VIP
- DB32T 4770-2024 桑蚕配合饲料全龄饲育技术规程.pdf VIP
- (正式版)SHT3533-2024石油化工给水排水管道工程施工及验收规范.pptx VIP
- ZZ027 婴幼儿保育赛项正式赛卷及评分标准完整版包括所有附件-2023年全国职业院校技能大赛赛项正式赛卷.pdf VIP
- 22G101-1混凝土结构施工图平面整体表示方法制图规则和构造详图(现浇混凝土框架、剪力墙、梁、板)(OCR).pdf VIP
- 污水处理厂工程施工组织设计.pdf VIP
原创力文档


文档评论(0)