C++面向对象程序设计 教学课件 作者 李素若 任正云 张牧 陈万华 编著第8章 模板.ppt

C++面向对象程序设计 教学课件 作者 李素若 任正云 张牧 陈万华 编著第8章 模板.ppt

ID:50297343

大小:167.50 KB

页数:30页

时间:2020-03-07

C++面向对象程序设计 教学课件 作者 李素若 任正云 张牧 陈万华 编著第8章 模板.ppt_第1页
C++面向对象程序设计 教学课件 作者 李素若 任正云 张牧 陈万华 编著第8章 模板.ppt_第2页
C++面向对象程序设计 教学课件 作者 李素若 任正云 张牧 陈万华 编著第8章 模板.ppt_第3页
C++面向对象程序设计 教学课件 作者 李素若 任正云 张牧 陈万华 编著第8章 模板.ppt_第4页
C++面向对象程序设计 教学课件 作者 李素若 任正云 张牧 陈万华 编著第8章 模板.ppt_第5页
资源描述:

《C++面向对象程序设计 教学课件 作者 李素若 任正云 张牧 陈万华 编著第8章 模板.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章模板8.1模板的概念模板是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码重用。模板分为函数模板和类模板,它们分别允许用户构造模板函数和模板类。8.1模板的概念例如,设计一个求两参数最大值的函数max(),可以分别定义如下几个使用同一函数名的函数:intmax(inta,intb){return(a>b)?a,b;}longmax(longa,longb){return(a>b)?a,b;}floatmax(floatx,floaty){return(x>y)?x:y;}doublemax(doublea,doubl

2、eb){return(a>b)?a,b;}charmax(chara,charb){return(a>b)?a,b;}8.1模板的概念解决这个问题的一种方法是使用宏定义,如:#definemax(x,y)((x>y)?x:y)带来的问题:classsuper{public:intmax(int,int);//此处宏扩展将导致语法错误//…}8.2函数模板与模板函数实例化实例化实例化函数模板模板函数模板类对 象类模板模  板8.2函数模板与模板函数8.2.1函数模板的说明函数模板的一般说明形式如下:template返回类型函数名(模板形参表){

3、函数体}其中,template是一个声明模板的关键字,它表示声明一个模板。例如,将求最大值函数max()定义成函数模板,如下所示:templateTmax(Tx,Ty){return(x>y)?x:y;}也可以定义成如下形式:templateTmax(Tx,Ty){return(x>y)?x:y;}其中,T为类型参数,它既可取系统预定义的数据类型,又可以取用户自定义的类型。8.2.2函数模板的使用将T实例化的参数称为模板实参,用模板实参实例化的函数称为模板函数。当编译系统发现有一个函数调用:函数名(模板实参表);时,将根据模板

4、实参表中的类型生成一个函数即模板函数。该模板函数的函数体与函数模板的函数定义体相同。例8_1函数模板的使用。#includetemplateTmax(Tx,Ty){return(x>y)?x:y;}main(){inti1=10,i2=56;floatf1=12.5,f2=24.5;doubled1=50.344,d2=4656.346;charc1='k',c2='n';cout<<"Themaxofi1,i2is:"<

5、2)<templatevoidmyfunc(type1x,type2y){cout<

6、义的参数类型用户可以在函数模板形参表和对模板函数的调用中使用类类型和其他自定义的类型。如果这样,就必须对模板函数中对类对象产生作用的基本运算符进行重载。例8_3使用用户自定义参数类型的函数模板举例#includeclassnumber{public:number(intx1,inty1){x=x1;y=y1;}intgetx(){returnx;}intgety(){returny;}intoperator>(number&c);private:intx,y;};intnumber::operator>(number&c){if(x+y>c

7、.x+c.y)return1;return0;}templateobj&max(obj&o1,obj&o2){if(o1>o2)returno1;returno2;}voidmain(){inti1=5,i2=55;cout<<"较大的数:"<

8、序段不能进

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。