2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

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/

分享到:
在線咨詢 我要報名
和我們在線交談!