全国咨询/投诉热线:400-618-9090

首页技术文章正文

C++函数模型template声明

更新时间:2018-11-09 来源:黑马程序员技术社区 浏览量:

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

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

作者:黑马程序员C/C++培训学院
首发:http://web.itheima.com/

javaee

python

web

ui

cloud

test

c

netmarket

pm

Linux

movies

robot

http://www.itcast.cn/subject/uizly/index.shtml?seozxuids

14天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

15天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

8天免费试学

基础班入门课程限时免费

申请试学名额

20天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

0天免费试学

基础班入门课程限时免费

申请试学名额

12天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

5天免费试学

基础班入门课程限时免费

申请试学名额

10天免费试学

基础班入门课程限时免费

申请试学名额
在线咨询 我要报名