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

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

函數模板

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

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

聲明:

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

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万盛区| 靖安县| 通城县| 镶黄旗| 乌恰县| 庆元县| 灵宝市| 电白县| 高邮市| 闻喜县| 高安市| 资阳市| 临朐县| 灯塔市| 九台市| 屏边| 正定县| 搜索| 衡山县| 顺昌县| 台前县| 方山县| 增城市| 西吉县| 内丘县| 酒泉市| 陵水| 惠安县| 红安县| 大足县| 叙永县| 永福县| 沙田区| 张掖市| 辛集市| 乐昌市| 垦利县| 六盘水市| 慈利县| 长丰县| 美姑县|