模板是泛型編程的基礎(chǔ),泛型編程即以一種獨(dú)立于任何特定類型的方式編寫代碼。
可以使用模板來(lái)定義函數(shù)和類
函數(shù)模板
模板函數(shù)定義的一般形式
template <class 形參名,class 形參名,......> 返回類型 函數(shù)名(參數(shù)列表)
{
函數(shù)體
}
其中template和class是關(guān)見字,class可以用typename 關(guān)見字代替,在這里typename 和class沒區(qū)別,<>括號(hào)中的參數(shù)叫模板形參,模板形參和函數(shù)形參很相像,模板形參不能為空。一但聲明了模板函數(shù)就可以用模板函數(shù)的形參名聲明類中的成員變量和成員函數(shù),即可以在該函數(shù)中使用內(nèi)置類型的地方都可以使用模板形參名。模板形參需要調(diào)用該模板函數(shù)時(shí)提供的模板實(shí)參來(lái)初始化模板形參,一旦編譯器確定了實(shí)際的模板實(shí)參類型就稱他實(shí)例化了函數(shù)模板的一個(gè)實(shí)例。