初见C++函数模板

函数模板 Function Template

可以将数据类型作为参数。

自己的理解:应用在实现方法相似的操作中。例如排序不同类型的数组,交换不同类型的两个数,但普通的swap函数需要参数与数据类型相匹配,实现多种数据类型的swap可能需要多个swap函数,int_swap,double_swap…或者进行函数的重载(overload),比较繁琐。而函数模板可以实现一个函数接纳多种数据类型,并做同一件事。

WARNING:函数的重载 !=函数模板

//函数模板的声明 关键字typename = class(旧版本), T可以重复使用,生命周期是这个函数
//正常声明函数 void... 参数可以为为自定义的 参数类型 也可以是 其他的数据类型
template <typename T> void swap_show(T&, T&);

//函数的定义 将template <typename T>置于第一行说明是一个函数模板 也可以放在同一行
template <typename T>
void swap_show(T& a, T& b)
{
	function body
}

下来是一个简单的应用

#include <iostream>
using namespace std;

//函数模板声明
template <typename T> void swap_show(T&, T&);


int main()
{
    int a = 1, b = 2;
    swap_show(a,b);
    double c = 2.5, d = 5.2;
    swap_show(c,d);
    system("pause");
    return 0;
}

//函数模板的定义
template <typename T>
void swap_show(T& a, T& b)
{
    T temp;
    temp = a;
    a = b;
    b = temp;
    cout << a  << ' '<< b << endl;
}

运行结果:
在这里插入图片描述
实现了int类型的交换以及double类型的交换

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页