在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若兩個引數...