PS:仅供自己记录笔记,使用到时进行记录,不具有参考性。
1. 模板概述
(1) 函数模板定义
- typename/class都行,这里class不是定义类的。多个参数:
<typename T, typename Q>
template<typename T>
T funcadd(T a, T b)
{
T sum = a + b;
return T;
}
- 非类型模板参数
template<typename T, int a, int b>
int funcaddv2(T c)
{
int sum = (int)c + a + b;
return sum
}
// 调用时
int result = funcaddv2<int, 11, 12>(13);
// 这里非类型模板参数使用<>传递值,即a=11, b=12, c=13
(1) 类模板概述
- 定义类模板
// 模仿vector类模板,myvector
//在myvector.h中
template<typename T>
class myvector
{
}