模板函数分析
来源:互联网 发布:淘宝主机烈士墙 编辑:程序博客网 时间:2024/06/08 04:36
模板函数是通用的函数描述,其形式如下:
teplate<tyname(class) anytype> //这样就指出了要建立一个模板并将类型命名为anytype。template是关键字,typename是必须的,可以使用关键字class代替typename
并非所有的模板参数都必须是模板参数类型,也可以是内置类型。
如:template<class T>
void fun(T*a,int b); //这样也是允许的
但是模板具有很大的局限性,它无法处理某些类型
如:void fun(T a,T b) {a=b}
如果T为数组类型就无法处理,所以C++提供的解决方案是为特定类型提供具体化的模板定义-----称为显示具体化
例如为一个名为A的类提供具体化模板类型定义如下:
template<>void fun(A a,A b);//这样便可以解决局限性问题
注意对于给定的函数名,可以有非模板函数,模板函数和显示具体化模板函数,它们间的优先级为非模板>显示具体化模板>模板函数。
在说模板的实例化,最初编译器只能通过隐式实例化来使用模板生成函数,但现在C++还允许显示实例化,显示实例化如下:
template void fun<int>(int,int);//注意与显示具体化的区别!
最后我们应该知道在代码中包含函数模板本身并不会生成函数定义,它只是一个用于生成函数定义的方案,只有使用模板实例的才是函数定义!
阅读全文
0 0
- 母函数模板分析
- 模板函数分析
- 【discuzX2】模板解析语法就template()函数分析
- 模板类的构造函数调用错误问题分析
- 模板分析
- 函数模板、类模板
- 模板--->函数模板
- 模板函数,模板类
- 模板之函数模板
- C++ 模板->模板函数
- 类模板(函数模板)
- 模板---函数模板
- 函数模板 类模板
- 浅谈模板----函数模板
- 关于模板--模板函数
- 函数模板、类模板
- 模板之函数模板
- STL源码分析--仿函数 & 模板的模板参数 & 临时对象
- 『0008』- Solidity中public、internal、private在状态变量和函数中的使用以及Solidity智能合约继承、重写
- AES
- 同余方程(拓展欧几里得模板)
- Struts2拦截器浅析(二)
- 基于Token的WEB后台登录认证机制(并讲解其他认证机制以及cookie和session机制)
- 模板函数分析
- DHCP的工作原理
- 树莓派笔记002——创建虚拟键盘并且添加到附件
- HTML 理解id和name的区别
- ModelSim之Testbench编写
- eclipse异常关闭,导致再次启动,闪退(又遇到编译项目失败)
- Toad Data Modeler 6免费版下载
- 81. Search in Rotated Sorted Array II
- Unexpected value 'DataUserWdFileListComponent' declared by the module 'AppModule'. Please add a @Pip