ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++之模板

2018-09-19 23:36:23  阅读:115  来源: 互联网

标签:


 

一、函数模板

1.基本概念

 

2.变量作为模板参数

 

3.多参数函数模板

 

4.函数模板与重载

 

注意:

<1> 相同模板

实例化出的模板函数之间形成重载

 

<2>不同模板

注意:

在定义出函数模板的时候,函数模板本身并不是互相重载的关系,因为内存中没有产生任何代码,

只有去使用函数模板时,编译器才会产生出相应的函数代码来,这些函数代码彼此之间才称得上是重载关系。

【在定义函数模板时,函数模板本身并不构成重载,因为仅仅将函数模板定义出来并不能在内存当中产生任何的代码,

只有去使用它的时候,编译器才会产生出相应的函数代码,这些代码才会体现出彼此之间的重载关系。】

 

5.补充说明

<1>《函数模板》课程评论:

1) 函数模板本身不会在内存中产生代码, 因为没有模板参数就无从知道要合成怎样的函数

2) 模板参数可以是类型, 变量(编译时实际上是常量), 或多个类型和变量的组合

3) 同一个函数模板的不同的模板函数之间可以看作互为重载

4) 函数名称相同但模板参数或函数参数不同的来自不同函数模板的模板函数之间也可以互为重载

 

<2> 注意:

1)模板参数的定义建议使用typename;

2)变量做模板参数,实例化模板传入数据时,变量就变成了常量,(因此没必要用来做函数形参??可以做函数形参,能成功运行,但没必要,浪费开销)

 

二、类模板

1.基本概念

 

2.多个参数的类模板

 

3.特别提醒

 

标签:
来源: https://www.cnblogs.com/Tang-tangt/p/9678333.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有