国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

函數模板

2019-11-14 08:46:22
字體:
來源:轉載
供稿:網友

函數模板,將同一種函數算法應用于各種數據類型。

聲明:

template <typename T>

void swap(T & a,T & b);

定義:

template <typename T>

void swap(T & a,T & b)

{

T temp;

temp = a;

a = b;

b = temp;

}

注意函數模板不能縮短可執行程序,最終的代碼不包含任何模板,只包含了為程序生成的實際函數。函數模板的好處在于,使得生成多個函數定義更簡單、更可靠。

重載和函數模板結合時,并不要求模板參數都必須是模板參數類型。

為特定類型提供具體化模板定義,稱為顯式具體化。當編譯器找到與函數調用匹配的具體化定義時,將使用該定義而不再尋找其模板。具體化優先于常規模板,而非模板函數優先于具體化和常規模板。

用顯式具體化,要求原型和定義用template <>打頭。

template <typename T>

void swap(T &,T &);

template <> void swap(job &,job &);

或者:

template <> void swap<job>(job &,job &);

以上均為隱式實例化,由編譯器根據參數類型推斷。而顯式實例化直接指定生成哪一種類型示例,由template打頭:

template void swap<int>(int &,int &);

顯式實例化作用為減少推斷隱式實例化的必要,提高編譯效率。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桐乡市| 原阳县| 嘉定区| 砀山县| 台前县| 临泽县| 博爱县| 包头市| 苏州市| 疏附县| 辽阳县| 洛阳市| 德庆县| 青川县| 莱芜市| 象州县| 荥阳市| 闵行区| 乐至县| 台中市| 昌吉市| 高安市| 喀喇沁旗| 海城市| 南和县| 嘉鱼县| 镇沅| 绥棱县| 黑河市| 兴国县| 乌鲁木齐市| 库伦旗| 土默特右旗| 科技| 饶阳县| 夏河县| 同江市| 建德市| 绥化市| 张北县| 永寿县|