第 6 章(1)━━函数模板、类模板

第 6 章(1)━━函数模板、类模板

ID:34419180

大小:590.25 KB

页数:24页

时间:2019-03-06

第 6 章(1)━━函数模板、类模板_第1页
第 6 章(1)━━函数模板、类模板_第2页
第 6 章(1)━━函数模板、类模板_第3页
第 6 章(1)━━函数模板、类模板_第4页
第 6 章(1)━━函数模板、类模板_第5页
资源描述:

《第 6 章(1)━━函数模板、类模板》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C++程序设计第6章(1)━━函数模板、类模板主要内容关于模板函数模板的定义函数模板实例化关于类模板类模板的定义类模板实例化顺序表类模板的定义关于模板关于模版:①为提高程序的通用性,必须使其代码不受数据类型的限制,即建立与数据类型无关的通用函数或通用类,方法是将其中的数据类型参数化,在函数或类的定义中引入数据类型参数。②模板是函数或类的通用样板,当函数或类需要处理多种不同类型数据时,可通过模板来创建具有通用功能的函数或类,即函数模板或类模板,以达到通用的目的。③由于一个函数模板可以支持多个具有不同数据类型形参的函数,从而简化了重载函数的设计。④C++国际标准ISO1

2、4882将模板正式引入标准库,以模板类取代传统的C++类。⑤程序中的软件模块由模板构造,即函数模板实例化产生相应的模板函数,类模板实例化产生相应的模板类,这种程序设计类型称为参数化程序设计。函数模板的定义函数模板的定义:template<模板形参列表>返回值类型函数名(函数形参列表){函数体}①模板形参有两种:类型参数、常规参数①函数的返回值类型、形参类型以及函数体中,②类型参数:由typename或class后加一个标均可使用前面模板形参表中给出的类型参数识符构成,该标识符用在紧跟其后的函数中来代表某种潜在的数据类型,该类型参数代代表一种潜在的数据类型。表的具体类型只有在调用函

3、数时根据给出的③常规参数:由类型符(如int、float)后加一模板实参才能确定!个标识符构成,该标识符用在紧跟其后的函数②在函数体中,还可使用前面模板形参表中给中代表一个潜在的常量。出的常规参数来代表一个潜在的常量,该常④模板形参格式:typename形参名规参数代表的具体值只有在调用函数时根据class形参名给出的模板实参才能确定!因此其对应的模数据类型形参名板实参必须是常量表达式。【例】(四个求绝对值的重载函数)(求绝对值的函数模板)#include#includeintabs(intx)template{

4、return(x>0?x:-x);}Tabs(Tx)函数模板longabs(longx){return(x>0?x:-x);}{return(x>0?x:-x);}voidmain()floatabs(floatx){inta=-96;longb=78;{return(x>0?x:-x);}floatc=-3.6;doubled=5.8;doubleabs(doublex)cout<<“

5、a

6、=”<(a)<0?x:-x);}cout<<“

7、b

8、=”<(b)<

9、c

10、=”

11、<(c)<

12、d

13、=”<(d)<

14、a

15、=”<

16、b

17、=”<

18、a

19、=96cout<<“

20、c

21、=”<

22、b

23、=78cout<<“

24、d

25、=”<

26、c

27、=3.6}类型”上不同,

28、可通过一个通用的函数模

29、d

30、=5.8板,替代多个具有不同类型形参的函数。函数模板实例化函数模板实例化:①编译系统生成函数模板的某个具体函数版本的过程称为函数模板实例化,每一个实例就是一个模板函数。②编译系统根据每一次函数调用时所(显式或隐式)给出的类型实参生成相应的函数调用式,并生成相应的函数版本,即模板函数。在实例化过程中,用类型实参替代函数模板中相应的类型形参。调用式中显式给出模板实参模板函数的显式调用:函数名<模板实参列表>(函数实参列表)【例】上例中的四次调用:cout<<“

31、a

32、=”<(a)<

33、b

34、=”<

35、(b)<

36、c

37、=”<(c)<

38、d

39、=”<(d)<

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

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

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