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

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

函數模板

2019-11-14 09:15:34
字體:
來源:轉載
供稿:網友

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

聲明:

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 &);

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 岐山县| 漳浦县| 南汇区| 斗六市| 永和县| 上高县| 扶余县| 德州市| 梓潼县| 巨鹿县| 新丰县| 板桥市| 泰安市| 昌邑市| 来凤县| 大英县| 邵阳县| 嵊泗县| 石渠县| 合江县| 余江县| 收藏| 晋城| 常德市| 叶城县| 江永县| 会泽县| 紫金县| 漳州市| 宣武区| 双江| 南靖县| 邵武市| 淮滨县| 南江县| 平乐县| 增城市| 临夏市| 威远县| 富蕴县| 太原市|