Lession 27 函数模板
来源:互联网 发布:上海携创软件 编辑:程序博客网 时间:2024/06/14 10:24
模板: 把类型作为参数传递进去的;
template<模板形参表>
返回值类型 函数模板名 (函数形参)
{
}
template <typename T> // 函数模板:是模板的定义,定义中用的是通用的一类函数
T max(T& a, T& b)
{
}
max<int><3,4> // 模板函数:是实实在在的函数定义 编译的时候就确定
有时可以省略类型形参: max(3,4);
模板 -> 函数 : 实例化
如果出现传递两次整形的情况,实例化函数只生成一个;
模板参数没有隐式类型转换!严格遵循类型的定义
模板参数(class T)对应的参数,不能有默认值;
模板形参可以包含非类型的值,这个是常量
template <class T, int size> // 非类型参数
T* alloc()
{
return new T[size] ;
}
max(3, 3.4); // 错误,类型存在分歧
可以声明为inline
template <class T, int size> // 非类型参数
inline T* alloc()
{
return new T[size] ;
}
和普通函数一样,也可以重载; // 本质还是函数的重载(即相应模板实例化出来的模板函数)
函数调用时会有:
1. 精确匹配
2. 类型提升
3. 类型转换 // int -> double
4. 类类型转换 // 子类->基类
模板函数匹配:
1. 精确匹配
2.寻找函数模板,寻找能精确匹配在函数
3. 类型转换
0 0
- Lession 27 函数模板
- Lession 28 类模板
- Lession 25 纯虚函数、抽象类
- Lession 24 虚函数与动态多态
- lession 1
- Lession 30 输入输出流
- Lession 30 异常处理
- Lession 5集合入门
- Lession 6 集合框架
- Lession 7 集合框架
- NeHe OpenGL lession 1
- NeHe OpenGL lession 2
- neHe OpenGL lession 3
- NeHe OpenGL lession 4
- neHe OpenGL lession 5
- neHe OpenGL lession 6
- 函数模板、类模板
- 模板--->函数模板
- Interpolation and Extrapolation(內插與外插)
- 关于进程和子进程和线程会不会成为僵尸进程的问题
- C++虚表解释
- 周末阅读(2)
- 类的分写与多层次架构程序的注意事项
- Lession 27 函数模板
- ORACLE 使用基本手册
- Cannot unwrap to requested type [javax.sql.DataSource]
- 栈区和堆区
- 如何計算浮點數? (SOC) (Verilog) http://www.cnblogs.com/oomusou/archive/2008/10/11/verilog_floating.html
- 走进小作坊(十四)----web2.0策略指南
- Ubuntu 14.04 安装 wubi
- 消消乐
- java中成员变量和局部变量的区别