C++:函数模板

函数模板是通用的函数描述,通过将类型作为参数传递给模板,可使编译器生成该类型的函数。
当函数形式完全相同,只是参数类型不同时,可以使用函数模型,这样可以极大的减少代码量,便于维护。

函数模板声明形式如下:

template<typename 数据类型参数标识符>
<返回类型><函数名>(参数表)

{
    函数体
}

其中template和typename是固定的标识符,不可更好。为了使用简单,数据类型参数标识符常会使用T。

例1:

#include<iostream>
using namespace std;
template<typename T>
void Swap(T &a,T &b)
{
    T c;
    c=a;
    a=b;
    b=c;
}
int main()
{
    int a=5;
    int b=3;
    Swap(a,b);
    cout<<"a:"<<a<<" "<<"b:"<<b<<endl;

    double c=1.2;
    double d=3.6;
    Swap(c,d);
    cout<<"c:"<<c<<" "<<"d:"<<d<<endl;

    system("pause");
}

结果如下:

a:3 b:5
c:3.6 d:1.2
请按任意键继续. . .

例2:

#include<iostream>
using namespace std;
template<typename T1,typename T2>
T2 Add(T1 a,T2 b)
{
    T2 c;
    c = a+b;
    return c;
}
int main()
{
    int a=5;
    double b=1.2;
    cout<<Add(a,b)<<endl;

    double c=1.2;
    int d = 5;
    cout<<Add(c,d)<<endl;

    system("pause");
}

结果如下:

6.2
6
请按任意键继续. . .

可以看到,通过函数模板,函数会自动根据输入参数的类型进行转换,这样可以极大减少代码量。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值