其實關於函式模板自己已經看了很多次了,只是實在太菜,用的很少以至於總是給忘了,現在簡單記下來。
函式模板是通用的函式描述,其通過將型別作為引數傳遞給模板,可使編譯器生成該型別的函式。
乙個簡單的函式模板例程:
#include
using
namespace
std;
template
void swap(t &a, t &b);
int main()
template
void swap(t &a, t &b)
需要多個對不同型別使用同一種演算法的函式時,可以通過類似上面程式的模板。但並非所有的型別都使用相同的演算法,這時就可以像過載常規函式定義一樣過載模板定義。和常規過載一樣,被過載的模板的函式特徵標必須不同。
#include
template
void swap(t &a, t &b);
template
void swap(t *a, t *b, int n);
void show(int a);
const
int lim = 8;
int main()
; int d2[lim] = ;
cout
<< "original arrays:\n";
show(d1);
show(d2);
swap(d1, d2, lim);
cout
show(d1);
show(d2);
return0;}
template
void swap(t &a, t &b)
template
void swap(t *a, t *b, int n)
}void show(int a)
cout
<< endl;
}
C 模板之函式模板
c 中分為函式模板和類模板,它們之間的相同點是都含有模板型參表,不同點在模板例項化的時候函式模板可以不用顯示的宣告模板類項,編譯器會自動幫我們匹配,而類模板則需要顯示定義出來,例如 template compare type type compare a,b template class queue...
C 模板之函式模板
泛型程式設計 編寫與型別無關的邏輯 是 復用的一種手段。模板是泛型程式設計的基礎 模板代表乙個函式家族,該函式與型別無關,在使用時被引數化,根據實參型別產生函式的特定型別版本 它本身不是類或函式 模板函式的格式 模板的例項化 產生模板特定型別的過程稱為函式模板的例項化 template t add ...
c 之模板函式 模板
模板就是建立通用的模具,大大提高復用性。c 的另一種程式設計思想是泛型程式設計,主要利用的就是模板。c 提供兩種模板機制 函式模板和類模板。宣告 template typename可以替換成class 函式模板 函式模板的作用 建立乙個通用函式,其函式返回值型別和形參型別可以不具體制定,用乙個虛擬的...