黄永峰《面向对象的程序设计》第12章小学期安排 函数类模板.pptVIP

黄永峰《面向对象的程序设计》第12章小学期安排 函数类模板.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机程序设计(1)知识体系 Nikiklaus wirth著名公式:程序=算法+数据结构 编程 = 算法 + 数据类型 + 工具 = + + 源 程 序 .cpp 执 行 程 序 .exe 程 序 结 构 解 题 思 路 常 见 算 法 基 本 类 型 指 针 类 型 组 合 类 型 项 目 建 立 编 译 连 接 跟 踪 调 试 本学期的知识点MAP 核心概念 类和对象 封装性 重载 继承与派生 多态性 流 运算 类族统一调用 重用 数据私有性 面向对象程序设计特点总结 抽象性:类是对象的抽象,对象是类的具体实例;类模板是类的抽象,类是类模板的具体实例;基类是派生类的抽象,派生类是基类的具体实例;抽象类等 封装性:类成员的3种访问属性;公有接口与私有实现的分离;类申明与成员函数定义的分离;构造函数;数据保护(6常) 继承性:3种继承方式,派生类成员的4种访问属性;派生类的构造函数(3类);多重继承中函数同名问题与虚基类 多态性:函数重载、运算符重载、多层派生的函数同名问题与虚函数;纯虚函数与抽象类 面向对象程序设计关键技术总结 对象成员的3种访问方式;6种构造函数;对象指针(this); 数据保护的6种常类型;对象动态建立与释放;对象的复制(浅拷贝与深拷贝问题);静态成员,友元函数 运算重载规则;成员函数与友元函数重载;类型转换函数与转换构造函数; 派生类的构造函数的实现方法;基类与派生类的兼容性问题 虚函数的引用方法;虚析构函数 Cin和cout;文件操作与文件流 异常处理 祝愿大家考出好成绩! 希望都成为编程高手! 多联系 * * 函数和类模板 小学期综合程序训练安排 考试安排 第12讲 模板和小学期实验训练 重要通知 笔考时间6月4日上午9:00~11:00. 地点:六教6C201,6C202 6月2号下午安排一次答疑,答疑地点:罗姆楼5-104室 12.1 模板的基本概念 模板是C++支持多态性的一种工具,体现c++泛化编程思想 所谓模板,其实就是一种使用“数据类型”作为参数来产生一系列函数或类的机制。模板用“类型参数”来完成不同的功能。 使用模板可以让用户得到类或函数声明的一种通用模式。使得类中的某些数据成员或者成员函数的参数、返回值取得不同的类型 模板方便了更大规模的软件开发。减少了程序员编写代码的工作量 //求两个双精度型数的极大值 double GetMax( double a, double b ) { return( a b ) ? a : b; } //求两个字符型数的极大值 char GettMax( char a, char b ) { return( a b ) ? a : b; } //求两个整型数的极大值 int GetMax( int a, int b ) { return( a b ) ? a : b; } //求两个长整型数的极大值 long GetMax( long a, long b ) { return( a b ) ? a : b; } 是否可以将上述四个函数合成为一个函数啦? Type用前述的int、long、double、char替换可得到上述四个函数。 Type GetMax( Type a, Type b ) { return( a b ) ? a, b; } 难道可以生产函数? 模板分为类模板(class template)和函数模板(function template)两种。 在说明了一个函数模板后,当编译系统发现有一个对应的函数调用时,将根据实参中的数据类型来确认是否匹配函数模板中对应的形参,然后生成一个重载函数 函数模版与类模版 该重载函数的定义体与函数模板的函数定义体相同,但数据类型参数具体化了,称为模板函数(template function)。 同样,在说明了一个类模板之后,可以创建类模板的实例,称为模板类。 实际上,将数据类型作为参数就得到了模板。将参数实例化就得到了模板类或者模板函数。 模板函数与模版类 函数模板是对一批模样相同的函数的说明描述,它不是某一个具体的函数。 而模板函数则是将函数模板内的“数据类型参数”具体化后得到的重载函数(就是由模板而来的函数)。 从哲学的抽象和具体的角度来说:函数模板是抽象的,而模板函数则是具体的 “人”和“某某人” 12.2 函数模版 使用函数模板的方法: 1、先说明函数模板, 2、然后实例化成相应的模板函数, 3、最后才可以调用模板函数,并执行。 12.1 函数模板 函数模板:实际上是建立一个通用函数。其函数类型和形参类型不具体指定。而是用虚拟的类型来代表 函数调用时,系统会根据实参类型来取代模板中虚拟类型,从而实现不同功

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档