C++ 笔记 | 第6课 模版
把类型参数化的程序被称为一个模板(template),使用模板只是简化程序的代码书写,并不能提高程序的执行效率。
C++ 模板主要针对函数和类等,形成: 函数模板、类模板、数组类模板
语法形式为:
template < 模板参数表 > 声明
函数模版
编译系统会根据实际调用情况,由函数模板生成重载的模板函数实例。
如果一个函数模板声明定义中有局部的静态对象,那么这个静态对象也会在每个模板函数中被定义,各模板函数中的静态变量是相互独立的。
模版参数表可以是:class 标识符
和 typename 标识符
,标志符可以是数据类型或是类类型
template <模版参数表>
函数返回类型 函数模板名(形参表) {
函数体}
// 如
template <typename T>
T abs(T a) {
return a < 0 ? -a : a;}
// 如
template <class X, class Y>
X fun(X x, Y y) {
// 模板参数必须出现在函数声明的形参表中
return x + y;
}
函数模版实参
在调用函数模板时,单独用函数模板实参来说明模板参数的类型
template <class X, class Y, class Z>
Z fun(X x, Y y) {
return x &#