第8章模板8
1模板的概念8
2函数模板8
3类模板本章主要内容8
1模板的概念定义求最大值函数max():intmax(intx,inty){return(x>y)
x∶y;}floatmax(floatx,floaty){return(x>y)
x∶y;}doublemax(doublex,doubley){return(x>y)
x∶y;}这些函数的功能都是相同的,只是参数类型和函数返回类型不同问题:能否将这些函数合起来,只写一个通用函数呢
解决这个问题的方法:使用模板模板是实现代码重用机制的一种工具,它把类型定义为参数,实现类型参数化
调用时,T可以分别取为int、float、double把类型定义为参数,如下所示:Tmax(Tx,Ty){return(x>y)
x∶y;}类型参数intmax(intx,inty){return(x>y)
x∶y;}floatmax(floatx,floaty){return(x>y)
x∶y;}doublemax(doublex,doubley){return(x>y)
x∶y;}把类型定义为参数,如下所示:Tmax(Tx,Ty){return(x>y)
x∶y;}类型参数调用时,T取int调用时,T取float调用时,T取double函数模板模板类模板8
2函数模板8
1函数模板的声明函数模板可声明如下:函数模板也可以定义成如下形式:template返回类型函数名(模板形参表){函数体}使用函数模板时,类型参数必须实例化,即用实际的数据类型替代它
template是一个声明模板的关键字,它表示声明一个模板
template返回类型函数名(模板形参表){函数体}例如,求最大值函数模板,如下所示:templateTmax(Tx,Ty){return(x>y)
x∶y;}也可以定义成如下形式:templateTmax(Tx,Ty)