- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * 第二部分 C++面向对象程序设计 第七章 多态性与虚函数 本章内容 ? 多态性概述 ? 运算符重载 ? 虚函数 * §7.1 多态性概述 多态性是面向对象程序设计的一个重要特征。 多态性(Polymorphism): 是指发出同样的消息被不同类型的对象接收时而导致不同的行为。(所谓发消息就是调用类中的成员函数。) 多态性的分类: 参数多态 包含多态 重载多态 强制多态 静态联编 动态联编 通用多态 专用多态 * 说明: 强制多态(coercion):编译程序通过语义操作,把操作对象的类型强行加以变换,以符合函数或操作符的要求。 例如:3.14+3/2; 强制类型转换(int)3.14+2 函数原型int f1(int); 函数调用 f1(3.14); 重载多态(overloading):同一个名(操作符﹑函数名)在不同的上下文中有不同的类型。 函数重载 运算符重载 int add(int x, int y) {return x+y;} double add(double x, double y) {return x+y;} coutadd(3, 4)endl; coutadd(3.4, 4.7)endl; * 参数多态( parametric ): 采用参数化模板,通过给出不同的类型参数,使得一个结构有多种类型。 #include iostream.h template class T //函数模板 T add(T *x, int n) { T s=0; for(int i=0;in;i++)s+=x[i]; return s; } void main() { int x[]={1, 2, 3, 4, 5}; double y[]={1.1, 2.2, 3.3, 4.4, 5.5}; cout整数相加结果:add(x, 5)\n; cout实数相加结果:add(y, 5)\n; } * class A { int Buffer[10]; public: A() { for(int k=0;k10;k++) Buffer[k]=0; } void SetElem(int i, int v); int GetElem(int i); }; void A::SetElem(int i, int v) { if(i=0 i10) Buffer[i]=v; else cout“下标越界\n; } int A::GetElem(int i) { if (i=0 i10) return Buffer[i]; else { cout下标越界\n; return 0; } } class B { double Buffer[5]; public: B() { for(int k=0;k5;k++) Buffer[k]=0; } void SetElem(int i, double v); double GetElem(int i); }; void B::SetElem(int i, double v) { if(i=0 i5) Buffer[i]=v; else cout“下标越界\n; } double B::GetElem(int i) { if (i=0 i5) return Buffer[i]; else { cout下标越界\n; return 0; } } templateclass T, int N //模板参数表 class A { double Buffer[N]; public: A(){ for(int k=0; kN; k++) Buffer[k]=0; } void SetElem(int i, T v); T GetElem(int i); }; templateclass T, int N void AT, N::SetElem(int i, T v) { if(i=0 iN)Buffer[i]=v; else cout 下标越界\n; } templateclass T, int N T
您可能关注的文档
- 电工学课件:第七章 电动机.ppt
- C++程序设计与实践:11-模板和泛型编程.ppt
- C++程序设计与数据结构基础:第1章 C++程序设计基础.ppt
- C++程序设计与数据结构基础:第2章 C++简单程序设计.ppt
- C++程序设计与数据结构基础:第3章 数组与指针.ppt
- C++程序设计与数据结构基础:第5章 类和对象.ppt
- C++程序设计与数据结构基础:第6章 继承和派生类.ppt
- C++程序设计与数据结构基础:第8章 C++ IO流标准库.ppt
- C++程序设计与数据结构基础:第10章 非线性结构.ppt
- C++程序设计与数据结构基础:第11章 查找和排序.ppt
- 2024年陕西咸阳亨通电力(集团)有限公司供电服务业务部直聘用工招聘145人笔试参考题库附带答案详解 .docx
- 2024年中建四局土木工程有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年四川雅茶贸易有限公司公开招聘和考察聘用人员3人笔试参考题库附带答案详解 .docx
- 2024年中国烟草总公司辽宁省公司公开招聘拟录用人员(166人)笔试参考题库附带答案详解 .docx
- 2024江苏连云港中诚物业管理有限公司招聘工作人员1人笔试参考题库附带答案详解 .docx
- [毕节]2025年贵州毕节市引进人才649人笔试历年参考题库附带答案详解.docx
- 2024年度中国东航技术应用研发中心有限公司校园招聘笔试参考题库附带答案详解 .docx
- 2024年福建省厦门盐业有限责任公司春季人才招聘1人笔试参考题库附带答案详解 .docx
- 2024年山东省环保发展集团绿能有限公司职业经理人招聘2人笔试参考题库附带答案详解 .docx
- 2024年安徽滁州郊源阳光电力维修工程有限责任公司招聘41人(第一批次)笔试参考题库附带答案详解 .docx
文档评论(0)