C 模板總結(jié)
前言:
大家好,今天給大家分享一篇關(guān)于 c 模板總結(jié)概述.模板(Template)指 C 程序設(shè)計(jì)設(shè)計(jì)語言中采用類型作為參數(shù)的程序設(shè)計(jì),支持通用程序設(shè)計(jì)。C 的標(biāo)準(zhǔn)庫提供許多有用的函數(shù)大多結(jié)合了模板的觀念,如 STL 以及 IO Stream。模板是 C 支持參數(shù)化多態(tài)的工具,使用模板可以使用戶為類或者函數(shù)聲明一種一般模式,使得類中的某些數(shù)據(jù)成員或者成員函數(shù)的參數(shù)、返回值取得任意類型。模板是一種對類型進(jìn)行參數(shù)化的工具;通常有兩種形式:函數(shù)模板和類模板:- 函數(shù)模板 針對僅參數(shù)類型不同的函數(shù);
- 類模板 針對僅數(shù)據(jù)成員和成員函數(shù)類型不同的類.
一、函數(shù)模板:
?template???返回類型?函數(shù)名(參數(shù)列表)
{
??????函數(shù)體
}
其中 template 和 class 是關(guān)鍵字,class 可以用 typename ?關(guān)鍵字代替,在這里 typename ?和 class 沒區(qū)別, 括號中的參數(shù)叫模板形參,模板形參和函數(shù)形參很相像,模板形參不能為空。一但聲明了模板函數(shù)就可以用模板函數(shù)的形參名聲明類中的成員變量和成員函數(shù),即可以在該函數(shù)中使用內(nèi)置類型的地方都可以使用模板形參名。模板形參需要調(diào)用該模板函數(shù)時(shí)提供的模板實(shí)參來初始化模板形參,一旦編譯器確定了實(shí)際的模板實(shí)參類型就稱他實(shí)例化了函數(shù)模板的一個(gè)實(shí)例。比如 swap 的模板函數(shù)形式為:template??void?swap(T