C template(模板)的使用

2021-08-08 20:19:06 字數 793 閱讀 4367

在c++中,針對於「泛型」的程式設計時,需要使用模板,泛型:任何資料型別。

比如:做乙個同時支援int和double型的加法運算,並輸出。

傳統的做法:

#include

using namespace std;

int add(int a,int b)

double add(double a,double b)

int main()

使用template的做法是這樣的:

#include

using namespace std;

template

t add(t a,t b)

int main()

顯然,template的方法要好用一些,需要支援的資料型別越多,優勢越顯著,但要注意,當傳入的型別不支援該函式的內部運算時,是不安全的。

template不僅能用於普通函式,還可以用於類、類的成員函式。

注意:使用template的時候,不支援分離編譯,簡單點講,這段使用template的**要「直接」或「間接」地出現在與main函式同乙個*.cpp檔案中,否則當呼叫該函式的時候,將「編譯不通過」或者「編譯通過,鏈結失敗」。

如果需要在與main函式不在同乙個檔案中使用template,通常的做法是:

將「宣告」和「定義」同時寫在【標頭檔案】中,在main函式中包含該標頭檔案(

#include"***.h"

)。

C Template初探 以模板為引數的模板

以模板為引數的模板,顧名思義,就是定義了乙個新的模板,這個模板的引數不是類,而是另乙個模板,用例子說明就很簡單了 templateclass a 這裡首先定義了乙個類模板 a,該模板有乙個整數引數,該引數又有乙個預設值 10。a是乙個普通的模板,其用法很簡單,像 a a 或 a 100 a,這樣就得...

c template筆記 1 模板函式

template inline t const max t const a,t const b include include include max.hpp int main 輸出結果 max 1,2 ok max 1,1.2 wrong max static cast 4 4.1 ok 若兩個引...

c template筆記 1 模板函式

template inline t const max t const a,t const b include include include max.hpp int main 輸出結果 max 1,2 ok max 1,1.2 wrong max static cast 4 4.1 ok若兩個引數...