成人app

首頁  /  C++教程  /  函數模板  /  

函數模板

點擊打開在線編譯器,邊學邊練

成人app我們前面剛剛學習了函數重載,可以處理多種數據類型,雖然是同一個名字,但仍然要分開定義,如果再能讓代碼精簡一些,模板化,就再好不過了!

為此,C++提供函數模板這一機制,大大提高代碼的可重用性。

 

成人app函數模板,是可以創建一個通用的函數,可以支持多種形參。

成人app用關鍵字template來定義,形式如下:

template<class 類型名1,class 類型名2…>

 

返回值 函數名(形參表列) 模板參數表

{

成人app   函數體

}

說明一下,這個一般形式中,第一行的template<class 類型名1,class 類型名2…>是一句聲明語句   ,template是定義模板函數的關鍵字,尖括號里可以有多個類型,前面都要用class(或者typename來定義)。然后后面跟定義的函數模板,切記中間不可以加其他的語句,不然會報錯!

 

成人app下面,我們舉個具體的例子來看一下:

#include<iostream>
using namespace std;
template<class T1,class T2>
T1 add(T1 x,T2 y)
{
    cout<<sizeof(T1)<<","<<sizeof(T2)<<"\t";
    return x+y;
}
int main()
{
    cout<<add(10,20)<<endl;;
    cout<<add(3.14,5.98)<<endl;
    cout<<add('A',2)<<endl;
    return 0;
}

 

以上是一個加法函數的模板,大家可以看到我們定義了一個add的函數模板,里面的變量類型都用T1和T2代替。

成人app在主函數中,實際調用時,我們調用了三次,分別三種不用的類型傳入,模板函數中的T1和T2類型將根據實際傳入的類型變成具體類型。這個化成就叫做模板的實例化。

 

然后我們運行程序,可以看到每次調用的類型T1和T2到底是什么類型,有多大字節,以及求和的結果。運行效果如下:

304.png


成人app大家可以對照代碼逐行理解并親自上機實驗完成。



本文固定URL:http://hnsaiyang.com/course/62

上一課:C++函數重載 下一課:內聯函數
Dotcpp在線編譯      (登錄可減少運行等待時間)