函数模板的定义使用关键字 template,后跟模板参数列表和函数原型。函数模板的语法形式如下:
template <模板参数列表>
返回类型 函数名(参数列表) {
// 函数体
}
在函数模板中,模板参数列表是一组用逗号分隔的模板参数,可以包含类型参数、非类型参数和模板参数的默认值。模板参数在函数原型和函数体中可以被使用,用于定义函数的通用形式。
下面是一个简单的函数模板示例,用于交换两个变量的值:
template <typename T>
void swap(T& a, T& b) {
T temp = a;
a = b;
b = temp;
}
在上述示例中,<typename T> 表示一个类型参数 T,用于指定待交换值的类型。函数原型中的参数类型使用了类型参数 T,并且在函数体中可以直接使用类型参数来操作变量。
函数模板可以通过在调用时推断模板参数,也可以显式指定模板参数。下面是函数模板的使用示例:
int main() {
int a = 5, b = 10;
swap(a, b); // 自动推断模板参数
double x = 2.5, y = 4.7;
swap<double>(x, y); // 显式指定模板参数
return 0;
}
在上述示例中,swap(a, b) 的调用自动推断模板参数为 int,而 swap<double>(x, y) 显式指定了模板参数为 double。
函数模板可以用于定义通用的函数形式,适用于不同类型的参数。在实际使用中,可以根据具体的需求定义和使用函数模板,提高代码的复用性和灵活性。
函数模板是C++中的一个特性,允许创建通用的函数,可以应用于不同类型的参数。通过使用关键字`template`定义模板参数列表和函数原型,例如`template<typenameT>voidswap(T&a,T&b)`。模板参数可以在函数原型和体内使用,如示例中的`swap`函数用于交换两个变量的值。在调用时,可以自动推断或显式指定模板参数,提高了代码的灵活性和复用性。
1175

被折叠的 条评论
为什么被折叠?



