[工学]Chapter3-关于类和对象的进一步讨论2.ppt

[工学]Chapter3-关于类和对象的进一步讨论2.ppt

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

3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 3.3.4 this指针 * 3.11.1 模板的概念 (一)什么是模板? void swap( T x, T y) { T t =x; x = y; y = t; } 其中:T是一个类型参数,在调用函数时,编译程序会根据实际参数的类型来确定T的类型。 * 3.11.1 模板的概念 (一)什么是模板? (☆) 一种通用的函数和类的设计方法,即将函数或类处理的数据类型进行参数化,在使用时再对数据类型进行实例化。 (二)作用 实现代码重用,提高程序开发效率。 (三)模板的分类 函数模板 类模板 * 3.11.2 函数模板 (一)函数模板的声明(☆ ☆ ☆) template class T1,class T2 … 返回类型 函数名 (参数表) { // 函数体定义 } 注意:T1,T2是参数化类型,class也可写为typename。 * 3.11.2 函数模板 (二)函数模板的使用 函数调用方法(☆ ☆ ☆) 函数名(实参1, 实参2 , ……) 函数调用的实现过程(☆ ☆) 编译器根据实际的参数,生成具体类型的模板函数; 执行模板函数,完成功能。 * template class T void swap ( T x , T y ) { T t; t=x; x=y; y=t; } void swap (int x , int y) { int t; t=x; x=y; y=t; } void swap (double x , double y) { double t; t=x; x=y; y=t; } swap(4,5) swap(11.2, 3.25) 函数 模板 模板 函数 模板 函数 * 3.11.2 函数模板 (二)函数模板的使用 函数调用方法(☆ ☆ ☆) 函数名(实参1, 实参2 , ……) 函数调用的实现过程(☆ ☆) 编译器根据实际的参数,生成具体类型的模板函数; 执行模板函数,完成功能。 注意:函数模板和模板函数的区别。 * 3.11.2 函数模板 (三)重载函数模板 举例: 定义求两个数最大值的函数模板。 问题: 如何求2个字符串的最大值? * 3.11.2 函数模板 (三)重载函数模板 举例: 定义求两个数最大值的函数模板。 问题: 如何求2个字符串的最大值? 函数模板与同名的非函数模板的重载 先寻找参数完全匹配的函数; 再寻找可匹配的函数模板; * 3.11.3 类模板 (一)问题引入 举例 定义表示两个数之间关系、运算的类,其中,其中两个数的类型可能为字符型、整型或者实型。 * 3.11.3 类模板 (一)问题引入 class TwoNum_Int { int x,y; public: TwoNum_Int (int xx, int yy) { x=xx; y=yy; } int max() {return xy?x:y; } int add() {return x+y; } }; * 3.11.3 类模板 (一)问题引入 class TwoNum_Double { double x,y; public: TwoNum_Double(double xx, double yy) { x=xx; y=yy; } double max() {return xy?x:y; } double add() {return x+y; } }; * 3.11.3 类模板 (一)问题引入 class TwoNum { T x,y; public: TwoNum (T xx, T yy ) { x=xx; y=yy; } T max() {return xy?

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档