A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

函数模板声明形式如下:

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
请按任意键继续. . .

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



8 个回复

倒序浏览
回复 使用道具 举报
棒棒哒
回复 使用道具 举报
牛牛牛!
回复 使用道具 举报
奈斯,优秀
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马